Dock Stay
クラウドで開発環境を動かす - Codespaces の使い方・オプション・サンプル

クラウドで開発環境を動かす - Codespaces

GitHub Codespaces は `devcontainer.json` を GitHub のクラウド VM 上で起動するサービス。ブラウザや VS Code から接続して、ローカル環境を整えずに開発できる。

概念図

Codespaces diagram

構文

bash
gh codespace create --repo <owner>/<repo> --branch <branch>

実例

CLI から特定ブランチ・マシンタイプで Codespace を作成。

bash
gh codespace create --repo acme/web --branch main --machine basicLinux32gb

自分が持っている Codespace の一覧を確認。

bash
gh codespace list

Codespace に SSH で入る。

bash
gh codespace ssh -c <name>

Codespaces の立ち位置

Codespaces は「Dev Container を自分の PC ではなく GitHub のクラウド VM 上で動かす」サービスです。

リポジトリに .devcontainer/devcontainer.json が置いてあれば、GitHub の「Code」ボタンから Create codespace を押すだけで、ビルド済みのコンテナに VS Code が接続した状態に辿り着きます。

ローカル Docker Desktop を入れたくない/入れられない環境(会社支給 PC の制限、スペック不足、Windows ホームで WSL2 が不安定、など)の逃げ道として特に価値があります。

ブラウザ版 VS Code も提供されるので、極端には iPad からでも開発できます。

マシンタイプとコスト

Codespaces は使っただけ課金(コア時間 × 稼働時間)で、停止中はストレージ課金のみに切り替わります。

代表的なマシンタイプは次のとおり。

名称 コア / メモリ 向く用途
2-core / 4 GB 軽量 ドキュメント編集、小規模スクリプト
4-core / 16 GB 標準 一般的な Web アプリ、テスト実行
8-core / 32 GB 重め 大規模リポジトリ、ビルドが重い Node/Python 系
16-core / 64 GB 大型 モノレポ全ビルド、重めの E2E

Org のポリシーで「上限マシンサイズ」「自動停止の分数」を絞れるので、チーム利用時は先に Codespaces の設定を詰めておくのが安全です。

Prebuild で起動を速くする

Codespaces Prebuild は、ブランチの変更に追随して事前にコンテナイメージをビルドしておく仕組みです。

Prebuild ありだと「Create codespace」から準備完了までが数秒〜十数秒に縮みます(なしだと数分かかることがある)。

典型的な設定は「main ブランチ + 特定のリリースブランチを常に prebuild する」。

依存が変わるたびに再ビルドされるので、package.json の更新後も次回 push 時点でキャッシュ化された状態になります。

.github/workflows ではなく、リポジトリの「Settings → Codespaces → Prebuilds」からルールを設定します。

dotfiles とパーソナライズ

Codespaces はユーザーごとに「dotfiles リポジトリ」を登録できます。

自分の .zshrc、エイリアス、gitconfig 等をこのリポジトリに置いておくと、どの Codespace を立ち上げてもそれらが自動的に clone + 実行されます。

チーム共通の設定は devcontainer.json に、個人の趣味は dotfiles に、と分けるのが運用しやすい構成です。

一方で、dotfiles で重いインストール(大量の zsh プラグイン等)をするとセッション起動が遅くなります。

prebuild が効かない領域なので、必要最低限に留めるのがコツです。

関連トピック