docker で terraform を実行するための docker-compose.yml を作成しました。
export AWS_DEFAULT_REGION=ap-northeast-1
export AWS_ACCESS_KEY_ID=xxxxxx
export AWS_SECRET_ACCESS_KEY=xxxxxx
version: "3"
services:
terraform:
image: hashicorp/terraform:1.5.2
platform: linux/x86_64
volumes:
- ~/.aws:/root/.aws
- ./:/workdir
working_dir: "/workdir"
environment:
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_DEFAULT_REGION
entrypoint: sh -c 'terraform init &&
terraform workspace select "${WORKSPACE}" 2>/dev/null ||
terraform workspace new "${WORKSPACE}" &&
terraform "${COMMAND}"'
# コードフォーマッターの実行
export WORKSPACE="prod" COMMAND="fmt" && docker-compose -p プロジェクト名 run --rm terraform
# コード構文チェックの実行
export WORKSPACE="prod" COMMAND="validate" && docker-compose -p プロジェクト名 run --rm terraform
# 実行計画の確認
export WORKSPACE="prod" COMMAND="plan" && docker-compose -p プロジェクト名 run --rm terraform