タイトルの通り、VSCode + Gemini Code Assistを使って、ローカルのOrbStackにterraformでコンテナを作ってみました。
- 環境の超概要はこちら
- macOS Tahoe 26.4
- OrbStack 2.0.5
- Terraform 1.14.7
- Google AI Plus(まだAI素人ですw)
Gemini Code Assistを導入したVSCodeの画面イメージ。

画面右のチャットを使って色々と作業をお願いする形になります。
Docker 構築のプロセス(サマリー)
あれよあれよという間にコンテナが出来てしまったので一段落したところでGeminiにサマリーを書いてもらいました。下にある事をやってくれたようです。
1. プロバイダーの確立:
– OrbStackのUnixソケット (/var/run/docker.sock) を通じてTerraformからローカルDockerを制御する基盤を構築しました。
2. リソースの定義と起動:
– Nginxイメージの取得とコンテナの実行を自動化しました。
3. 変数の外部化 (Refactoring):
– variables.tf を導入し、ポート番号やイメージのバージョンを main.tfを汚さずに変更できる柔軟性を確保しました。
4. 出力の可視化 (Outputs):
– apply 完了時にアクセス用URLを即座に表示する設定を追加し、UXを向上させました。
5. ボリュームマウントの導入:
– ローカルの static/ ディレクトリをコンテナ内の /usr/share/nginx/html に同期させ、インフラを再起動せずにHTMLの変更が即時反映される「ホットリロード」に近い開発体験を実現しました。
6. 文字化け修正と品質改善:
– HTMLのメタタグによるUTF-8の明示を行い、日本語表示の不具合を解消しました。
また、.gitignore により開発環境特有のファイルを適切に除外しました。
コンテナの作成
プロンプトも正直、
ローカルのdockerでサンプルコンテナを使いたい
位しか伝えてなかったのですが、あっという間にmain.tfができてterraform applyしたらコンテナが一丁上がり。

コンテナのnginxも無事起動してました。

サンプルHTMLの作成
次は何をしますか?と提案されたので、Geminiに言われるがままサンプルHTMLを作成。
サマリにあるように、ボリュームマウントの設定とindex.htmlを作ってくれました。
ただ、せっかく作ってくれたマウントポイント:staticには作ってくれず、リポジトリのルートにファイルを作ったのはちょっと残念。これは手でファイルを移動。
.
├── main.tf
├── variables.tf
└── static/ <-- ここに index.html を置いてほしかった!
└── index.html
表示確認したら文字化け。それを伝えたら修正(charsetの追加)してくれたのですが、またしてもルートに作ったので、ファイルを移動。
無事にサンプルHTMLが完成!
特に面白くないと思いますが、ブラウザのスクショ(修正前後)です。

まとめ
今回はGemini Code Assistを使って、ローカルのorbstackにコンテナを作って、サンプルHTMLを作るところまでやってみました。
ほぼ100%自分はGeminiに指示(お願い)しただけですが、ここまで簡単にできたのはなかなか可能性を感じるところではあります。
ただ、どのAIも大体一緒なんだろうと思いますが、使い方にはコツがあるようです。
今回も自分のざっくりとしたプロンプトを連発していたら、以下の警告がそこそこ頻繁に出てきました。

(機械翻訳)
この回答に含まれるコードサンプルは、許容される最大出力量を超えたため、一部が省略されています。回答の内容を慎重にご利用ください。また、コンテキストとしてより短いコードブロックを選択して、再度質問してみてください。
これはAIが暴走wというか頑張り過ぎちゃった時に表示されるようで、コツとしては、メッセージにあるように、なるべく限定的なプロンプトでお願いした方がいいようです。
このあたりが課金による違いなのかなぁ。
教訓: AIが一度に全部(main.tfもvariables.tfも解説も)出そうとするとパンクするので、「今は main.tf の修正点だけ出して」と小出しに指示するのが、AIを活かすコツのようです。
まあなんだかんだコードをほぼ自分で書かないでこんなことが出来るようになったのは、自称インフラエンジニアとして喜んでいいのか複雑ですね。
コードを一行も書かずに構築できたことに戸惑いもありますが、逆に言えば『インフラの設計図(IaC)をAIとペアプログラミングで仕上げるディレクション能力』がこれからのエンジニアの武器になるんだな、と実感しました。
現場からは以上です。ではでは。
