概要
酒を飲んでるので何でも良いのですがTerraform でDocker Provider を使いたくなったのでローカルでDockerコンテナのインフラ環境を構築してみます。あと、特に学びも書く予定がないのでここで「TerraformにDocker Provider があるんだ」という感想を持って読み終わって良いです。僕は別に移行してないです。
開発環境情報
$ terraform version Terraform v1.4.0
Terraform 1.4 が GA になったのでついでに入れておきました。
同僚がブログ書いていたので紹介しておきます。
デプロイするファイル
tutorial.tf というファイルをおきます。
terraform { required_providers { docker = { source = "kreuzwerker/docker" version = "3.0.1" } } } provider "docker" { host = "unix:///var/run/docker.sock" } # Pulls the image resource "docker_image" "nginx" { name = "nginx:latest" } # Create a container resource "docker_container" "foo" { image = docker_image.nginx.latest name = "foo" ports { internal = 80 external = 8080 } }
このコードでは、Docker Providerバージョン3.0.1を使用しています。プロバイダとしてDockerを指定し、Dockerホストのソケットへのパスを指定しています。docker_imageリソースで、最新のnginxイメージをプルします。そして、docker_containerリソースで、docker_image.nginx.latestをベースに新しいコンテナを作成します。80番ポートを内部ポートとしてマッピングし、8080番ポートを外部ポートとしてマッピングしています。
# Terraform初期化 terraform init # プランの確認 terraform plan # 実行 terraform apply
docker_containerリソースで作成したコンテナが起動しているはずです。docker psコマンドを使用して、コンテナが実行されているかどうかを確認できます。
眠くなったのでもう寝ます。