自分は今まで、ブラウザで VS Code が使用できる環境である GitHub Codespaces に後から Terraform をはじめとする各種ツールを sudo apt install
でインストールしていました。他の選択肢としては、Dockerfile に必要なツールをインストールするカスタムコンテナーを用意する事です。ところが、GitHub Codespaces のドキュメントを読むと、.devcontainer/devcontainer.json
に定義するだけで各種ツールを簡単に初回導入してくれるらしいのです。という事で、Terraform と AWS CLI と Azure CLI と Dotnet 6 の簡単導入を試してみました。このあとの展開としては、導入するツールのバージョンも細かく指定してプロジェクトメンバーで共有すれば、よく起こりがちなメンバー間の環境差異による問題切り分け工数の浪費を最小化する事が期待できます。
.devcontainer/devcontainer.json を作成
例えば blank
プライベート Git リポジトリを作成後に下記の内容を保存します。dotnet だけバージョンを指定しています。
{
"name": "blank",
"features": {
"ghcr.io/devcontainers/features/terraform:1": {},
"ghcr.io/devcontainers/features/aws-cli:1": {},
"ghcr.io/devcontainers/features/azure-cli:1": {},
"ghcr.io/devcontainers/features/dotnet:1": {
"version": "6"
}
},
"postCreateCommand": "sudo apt install -y dnsutils"
}
GitHub Codespaces の初回起動画面イメージ
初回は数分かかります。

GitHub Codespaces 起動後のツール確認

参考
https://containers.dev/implementors/json_reference/
タグ: aws cli, Azure CLI, Codespaces, dotnet, GitHub, Terraform