■ はじめに
Terraform は、基本的には、 AWSなどのクラウド環境作成するためのツールだとは思うが Docker でも利用できるので、学習用に利用する。
目次
【1】前提条件 【2】サンプル 例1:Dockerイメージ「Nginx」からインストール 補足:警告「The attribute "latest" is deprecated.」
【1】前提条件
* 以下の関連記事などを参考に、 LinuxOS(WSL2)上に、Terraformがインストールされていること
Terraform ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2023/04/05/000224
【2】サンプル
例1:Dockerイメージ「Nginx」からインストール
# Set the required provider and versions terraform { required_providers { # We recommend pinning to the specific version of the Docker Provider you're using # since new versions are released frequently docker = { source = "kreuzwerker/docker" version = "3.0.2" } } } # Configure the docker provider provider "docker" { } # Create a docker image resource # -> docker pull nginx:latest resource "docker_image" "nginx" { name = "nginx:latest" keep_locally = true } # Create a docker container resource # -> same as 'docker run --name nginx -p8080:80 -d nginx:latest' resource "docker_container" "nginx" { name = "nginx" image = docker_image.nginx.image_id ports { external = 8080 internal = 80 } }
コマンド例
# [1] 初期化 terraform init # [2] ドライラン terraform plan # [3] アプライ terraform apply # [4] 動作確認 (HTMLが取得できたらOK) curl http://localhost:8080 # [5] 後片付け terraform destroy
補足:警告「The attribute "latest" is deprecated.」
https://dockerlabs.collabnix.com/advanced/automation/terraform/terraform-mac-nginx.html
などのサンプルだと 「image = docker_image.nginx.latest」部分で 警告「The attribute "latest" is deprecated. Refer to the provider documentation for details.」が出る。
https://github.com/kreuzwerker/terraform-provider-docker
関連記事
Terraform ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2023/04/05/000224
Terraform ~ AWS S3 ~
https://dk521123.hatenablog.com/entry/2023/04/09/104204
Terraform ~ AWS Glue ~
https://dk521123.hatenablog.com/entry/2023/04/08/220411
Terraform ~ AWS Secrets Manager ~
https://dk521123.hatenablog.com/entry/2023/04/11/152801