GitHub Codespaces を使うプライベート Git リポジトリに Terraform と AWS CLI と Azure CLI と Dotnet 6 を初回導入する設定ファイルを用意してみた

自分は今まで、ブラウザで 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://docs.github.com/ja/codespaces/setting-up-your-project-for-codespaces/configuring-dev-containers/adding-features-to-a-devcontainer-file

https://containers.dev/implementors/json_reference/

タグ: , , , , ,