DevContainer開発環境でCaludeを使用するとき
- プロジェクトのルートに以下の.devcontainerディレクトリを配置
- VSCode >
Dev Containers: Rebuild and Reopen in Container
2025/11/03 時点での設定内容のメモ
Dockerfile
- 使用される環境: Node20
- Dockerfileで定義
devcontainer.json
主要な設定項目:
-
name (2行目): コンテナの表示名
-
build (3-11行目): Dockerイメージのビルド設定
- dockerfile: 使用するDockerfile
- args: ビルド時の引数
- TZ: タイムゾーン(デフォルト: America/Los_Angeles)
- CLAUDE_CODE_VERSION: Claudeのバージョン
- GIT_DELTA_VERSION: git-deltaツールのバージョン
- ZSH_IN_DOCKER_VERSION: zshの設定バージョン
-
runArgs (12-15行目): コンテナ実行時の引数
- —cap-add=NET_ADMIN: ネットワーク管理の権限を付与(ファイアウォール設定に必要)
- —cap-add=NET_RAW: RAWソケットの使用権限(iptables/ipsetに必要)
-
customizations.vscode (16-41行目): VS Code固有の設定
- extensions: 自動インストールされる拡張機能
- Claude Code、ESLint、Prettier、GitLens
- settings: エディタ設定
- 保存時の自動フォーマット
- デフォルトシェルをzshに設定
- extensions: 自動インストールされる拡張機能
-
remoteUser (43行目): コンテナ内での実行ユーザー(node)
-
mounts (44-47行目): 永続化ボリューム
- bashコマンド履歴の保存先
- Claude設定ファイルの保存先
-
containerEnv (48-52行目): 環境変数
- NODE_OPTIONS: Node.jsのメモリ制限(4GB)
- CLAUDE_CONFIG_DIR: Claude設定ディレクトリ
- POWERLEVEL9K_DISABLE_GITSTATUS: gitstatus無効化
-
workspaceMount & workspaceFolder (53-54行目): ワークスペースのマウント設定
-
postStartCommand: コンテナ起動後に実行されるコマンド
- ファイアウォール設定スクリプト(init-firewall.sh)を実行
-
waitFor: postStartCommandの完了を待つ設定
"postStartCommand": "sudo /usr/local/bin/init-firewall.sh",
"waitFor": "postStartCommand"