TerraformをDocker環境から実行する
以下の記事を参考にDocker環境からterraformコマンドを実行させるよう、dockerを構成します。
https://qiita.com/Tocyuki/items/0cb655e6357d9bf0c40f
ファイル構成は以下の通りです。
まずはdocker-compose用のファイルから見ていきましょう。
terraform用のDockerイメージは公式イメージがhashicorp社から出ているため、それを利用します。
今回はterraformのバージョンを0.15.5
を利用します。
volumesに./terraform:/terraform
を指定しているため、docker環境内部に、ホスト環境の./terraform
フォルダがマウントされています。
また、.envファイルによりAWS用のプロファイルを指定していますので、以下の通り、.envファイルを準備しましょう。
.envファイルは.gitignoreに必ず入れましょう!
gitリポジトリにプッシュすると即座に不正利用されます!
上記のdocker-compose.yml
を使用すると、以下のコマンドでdocker環境からterraformを実行できます。
このままでも十分docker環境からの利用は可能なのですが、毎回docker-compose
コマンドを発行するのは面倒なのでMakefile
を作成し、make
コマンドで簡易に実行可能にします。
Makefileでの実行環境作成
以下のようなMakefileを作成します。
terraform init, plan, applyなどの基本的なコマンドを実行できるようにしています。
これでmake
コマンドを利用して基本的なterraformコマンドを実行可能です。
上記のコマンドでも足りない場合は、make ash
をすることで、terraformコンテナ内部に入ることが出来るので、コンテナ内部で好きなコマンドを使用することが可能です。