はじめに
コンテナランタイム
Section titled “コンテナランタイム”マシンにコンテナランタイムが必要です。DockerまたはPodmanのいずれかが使用できます。
| プラットフォーム | インストール |
|---|---|
| macOS | Docker Desktop for Mac |
| Windows | Docker Desktop for Windows(WSL2バックエンド) |
| Linux | Docker Engine または Docker Desktop for Linux |
動作確認:
docker --versiondocker compose version| プラットフォーム | インストール |
|---|---|
| macOS | Podman Desktop for Mac |
| Windows | Podman Desktop for Windows |
| Linux | Podman + Podman Compose |
動作確認:
podman --versionpodman-compose versionシステムリソース
Section titled “システムリソース”| リソース | 最小要件 | 推奨 |
|---|---|---|
| ディスク | 5 GB | 10 GB以上 |
| RAM | コンテナランタイムに8 GB割り当て | 12 GB以上 |
| CPU | 2コア | 4コア以上 |
Docker Desktop → Settings → Resources でリソース制限を調整してください。
macOS/Windowsでは、Podman Desktop → Settings → Resources でリソース制限を調整するか、CLIから設定できます:
podman machine set --cpus 4 --memory 12288podman machine stop && podman machine startLinuxでは、コンテナはホストリソースを直接共有するため、リソース設定は不要です。
1. セットアップ
Section titled “1. セットアップ”フォルダを作成し、composeファイルをダウンロードします:
mkdir devcontainer && cd devcontainercurl -fsSLO https://raw.githubusercontent.com/f5-sales-demo/devcontainer/main/docker-compose.yml2. 認証情報の追加(オプション)
Section titled “2. 認証情報の追加(オプション)”同じフォルダに.envファイルを作成して、Claude Codeを事前設定します。以下のオプションのいずれかを選択してください:
オプションA: Claude Max(OAuth)
Section titled “オプションA: Claude Max(OAuth)”CLAUDE_CODE_OAUTH_TOKEN=sk-ant-oat01-your-token-hereオプションB: LiteLLMまたはAnthropic互換プロキシ
Section titled “オプションB: LiteLLMまたはAnthropic互換プロキシ”LiteLLMインスタンスやその他のAnthropic互換プロキシをお持ちの場合は、以下の2つの変数を設定してください:
LITELLM_BASE_URL=https://your-litellm-endpoint.example.comLITELLM_API_KEY=your-api-keyドメインのみを設定してください — コンテナがプロバイダー固有のURLサフィックスを自動的に導出します(例:Claude Codeの場合は/anthropic)。
ローカル認証情報からの自動入力
Section titled “ローカル認証情報からの自動入力”ホストマシンにgitとghが設定されている場合、ほとんどの.env値を自動的に入力できます。まずテンプレートをコピーします:
cp .env.example .env次に、お使いの環境に合ったコマンドを実行してください:
# Git IDecho "GIT_AUTHOR_EMAIL=$(git config user.email)" >> .envecho "GIT_AUTHOR_NAME=\"$(git config user.name)\"" >> .env
# タイムゾーンecho "TZ=$(readlink /etc/localtime | sed 's|.*/zoneinfo/||')" >> .env
# GitHub CLIトークン(要件: gh auth login)echo "GH_TOKEN=$(gh auth token)" >> .env
# SSHキー(gitにSSHを使用している場合)echo "SSH_PRIVATE_KEY=$(base64 < ~/.ssh/id_ed25519)" >> .envその後、.envを編集してOAuthトークンまたはLiteLLMプロキシ設定を追加してください(上記のオプションを参照)。
docker compose up -dpodman-compose pull && podman-compose up -d初回実行時にghcr.ioからビルド済みイメージをプルします(接続速度により約1分)。以降の起動ではキャッシュされたイメージを使用するため、数秒で完了します。
docker compose exec dev zshpodman-compose exec dev zsh5. 動作確認
Section titled “5. 動作確認”# AIツールclaude --versioncodex --versionpi --version
# プログラミング言語node --versionpython3 --versiongo version
# クラウドCLIaws --versionaz --versionterraform --versionAI接続のテスト:
claude -p "Say hello"6. 最初のプロジェクト
Section titled “6. 最初のプロジェクト”cd /workspacegit clone https://github.com/your-org/your-project.gitcd your-projectclaude7. リモートディスプレイ(noVNC)
Section titled “7. リモートディスプレイ(noVNC)”コンテナには、AIエージェントがブラウザを操作する様子を確認するための仮想ディスプレイが含まれています。http://localhost:6080/vnc.htmlを開いて接続してください。詳細はリモートディスプレイ(noVNC)を参照してください。
8. ブラウザ自動化(Chrome DevTools MCP)
Section titled “8. ブラウザ自動化(Chrome DevTools MCP)”Claude Codeは、組み込みのChrome DevTools MCPサーバーを使用して、Webページのナビゲーション、スクリーンショットの取得、DOMの検査を行えます。セットアップは不要で、ヘッドレスモードで自動的に動作します。詳細はChrome DevTools MCPを参照してください。
9. 停止と再起動
Section titled “9. 停止と再起動”# 停止(データは保持されます)docker compose down
# 再起動docker compose up -d
# すべてを破棄して最初からやり直すdocker compose down -vdocker compose up -d# 停止(データは保持されます)podman-compose down
# 再起動(pullで最新イメージを取得)podman-compose pull && podman-compose up -d
# すべてを破棄して最初からやり直すpodman-compose down -vpodman-compose pull && podman-compose up -d/workspace内のコードとホームディレクトリは再起動後も保持されます。詳細は設定 — データの永続化を参照してください。
ローカルビルドとDockerfileのカスタマイズについては、ローカル開発を参照してください。VS Code統合については、VS Codeを参照してください。リモートディスプレイオプションについては、リモートディスプレイ(noVNC)を参照してください。