このドキュメントでは、dev-containerの詳細なセットアップ方法とカスタマイズ方法を説明します。
- Docker Desktop(または他のDocker Engine)
- Dev Container対応エディタ(VS Code / IntelliJ IDEA / Dev Container CLI)
- 1Password(SSH Agent設定済み)
-
1PasswordでSSH Agentを有効化
- 1Password の設定を開く
- 「開発者」セクションで「SSH エージェントを使用」をオンにする
-
SSH_AUTH_SOCKの環境変数を設定
- 1Password SSH Agent公式ドキュメントを参考に
SSH_AUTH_SOCKの設定を行う - LaunchAgentsの設定まで実施する
- LaunchAgents設定後はDocker Desktopを一度完全終了させること(設定を反映させるため)
- 1Password SSH Agent公式ドキュメントを参考に
注: Docker Desktop 側での設定は不要です。docker-compose.ymlで/run/host-services/ssh-auth.sockをマウントすることで自動的に SSH agent forwarding が有効になります。
参考:
このDev Containerは3層のカスタマイズ構造を採用しています:
- 共通設定 (
docker-compose.yml): 全プロジェクト共通の基本設定 - プロジェクト設定 (
.devcontainer.override/docker-compose.override.yml): プロジェクト固有の設定(リポジトリで管理) - ローカル設定 (
.devcontainer/docker-compose.local.yml): 個人用設定(コミット対象外)
各設定は順に読み込まれ、後の設定が前の設定を上書きします。
プロジェクト全体で共有する設定は、.devcontainer.override/docker-compose.override.ymlを作成してカスタマイズします。
カスタマイズ例:
node_modulesのボリュームマウント(docker-compose.override.yml.templateを参照)- 環境変数の設定
- ポートのフォワーディング
このファイルはリポジトリにコミットして管理します。
個人的なカスタマイズは、.devcontainer/docker-compose.local.ymlを作成してカスタマイズします。
カスタマイズ例:
- 個人用のディレクトリマウント
- GITHUB_TOKEN の設定(
docker-compose.local.yml.templateを参照)
GITHUB_TOKENについて: miseのインストール時にGitHub APIレート制限エラーが発生する場合は、スコープ不要のトークンを環境変数GITHUB_TOKENに設定してください。
基本構成:
- Debian bookworm-slim
- Node.js 24.9.0 / pnpm 10.17.1(mise管理)
- zsh
- Homebrew
- Claude Code
永続化ボリューム:
devcontainer-${PROJECT_ROOT_DIR_NAME}-pnpm_store: pnpmキャッシュdevcontainer-${PROJECT_ROOT_DIR_NAME}-commandhistory: コマンド履歴claude-code-config: Claude設定
注: プロジェクトによってはnode_modulesボリュームを追加することを推奨します(プロジェクト設定参照)。
dev-containerの更新を反映するには以下のコマンドを実行します
git submodule update --remote .devcontainer
git add .devcontainer
git commit -m "Update submodule"