複数の環境を持ってたり、それを複数人で管理してたりすると 作成したstateのバージョンだったり作業環境のTerraformのバージョンだったりを同じじゃないことってありますよね。

例えばAでは0.6.xしか実行してなかったけど、Bでは0.7.xで運用を開始したり それをMacで運用してるとAを更新する際に、0.7.xで実行することになっちゃって、フォーマットエラー….かなしい

なので、ローカルインストールしたバージョンに依存する事なく、A,Bのように環境が違っても、実行者が違っても同じバージョンで運用出来るようになるととても幸せ ※でも、早めにバージョンはあげようよ!!

そんな時に便利なのが、実行環境をDockerコンテナ!!

Docker Hubには、terraform公式のイメージ(hashicorp/terraform)が存在しています。

これを使うことで、0.6.xで実行したいなら

$ docker run --rm -v ~/.aws:/root/.aws:ro -v ${PWD}:/work -w /work hashicorp/terraform:0.6.16 plan

0.7.xで実行したいなら

$ docker run --rm -v ~/.aws:/root/.aws:ro -v ${PWD}:/work -w /work hashicorp/terraform:0.7.1 plan

バージョンなんて知るか!!男は黙って最新を使え!なら

$ docker run --rm -v ~/.aws:/root/.aws:ro -v ${PWD}:/work -w /work hashicorp/terraform:latest plan

と使うことができます