はじめに
GitHub Codespaces の公式ドキュメントを読んでいて、勉強になった内容をまとめておきます。
タイムアウト時間
codespace
は、使用している間は実行され続けますが、一定時間非アクティブになるとタイムアウトします。 エディターとターミナル出力からのファイルの変更はアクティビティとしてカウントされるため、ターミナル出力が継続されていれば codespace
はタイムアウトしません。 既定の非アクティブ タイムアウト期間は 30 分です。
/workspaces ディレクトリ
codespace
を作成すると、リポジトリが codespace
内の /workspaces
ディレクトリに複製されます。 これは、コンテナーにマウントされる永続的なディレクトリです。ファイルの編集、追加、削除など、このディレクトリ内で行った変更は、codespace
を停止して開始するとき、および codespace
内のコンテナーをリビルドするときに保持されます。
Linux Universal Image
Linux Universal Image
は GitHub Codespaces
のデフォルトの Ubuntu
ベースのイメージです。Python
, Node.js
, JavaScript
, TypeScript
, C++
, Java
, C#
, F#
, .NET Core
, PHP
, Go
, Ruby
, Conda
言語がインストール済みであるため、All in One
な codespace
環境をセットアップしたい場合に有効です。
Linux Universal Image を使った .devcontainer.json
codespace
環境の初回のセットアップに時間がかかりますが、色々な言語が入った環境をセットアップしたい場合は .devcontainer
の image
に mcr.microsoft.com/devcontainers/universal:linux
を指定することで、Linux Universal Image
ベースのカスタムイメージを作成することが可能です。
{
"name": "Ubuntu Universal Linux",
"image": "mcr.microsoft.com/devcontainers/universal:linux",
"features": {},
"customizations": {
"vscode": {
"extensions": [
"GitHub.copilot-chat",
"GitHub.copilot"
]
}
}
}
おわりに
GitHub Codespaces
の公式ドキュメントを読むと、想像以上に細かい機能や設定があることに気づきました。GitHub Codespaces
の機能や設定のほんの一部しか知らない状態だと思うので、さらに勉強して快適で楽しい GitHub Codespaces
ライフを目指したいと思います。