-
.envを作成する(このファイルが無いとコンテナ起動に失敗します)cp .devcontainer/.env.example .devcontainer/.env aa
-
.devcontainer/.envを編集し、各値を設定するANSIBLE_PROXMOX_GUEST_API_TOKENANSIBLE_PROXMOX_PERSONAL_API_TOKENANSIBLE_DEV_VM_PRIVATE_KEY_FILE(通常はデフォルトのままでOK)ANSIBLE_K3S_PRIVATE_KEY_FILE(通常はデフォルトのままでOK)
-
SSH秘密鍵をホストの
~/.ssh/に配置する (dev-vm-ssh,k3s-sshなど、.envで指定したファイル名と一致させる) -
VSCodeで
Reopen in Containerを実行
- Pythonパッケージを追加:
.devcontainer/requirements.txtに追記 → コンテナを Rebuild - Ansible collectionを追加:
.devcontainer/requirements.ymlに追記 → コンテナを Rebuild
devcontainer.json の mounts には、デフォルトで Claude Code (~/.claude) と Cline (~/.cline) のマウント設定が有効な状態で含まれています。
initializeCommandがコンテナ起動前に~/.claude,~/.clineを(無ければ)自動作成するため、これらのツールを導入していない環境でもエラーでコンテナ起動が止まることはありません- 使わない場合、単に中身が空のディレクトリがコンテナ内にマウントされるだけで実害はありません
それでも自分の環境に不要なマウントを残したくない場合は、devcontainer.json の該当行を削除(またはコメントアウト)してください。
削除する場合、あわせて initializeCommand からも ${localEnv:HOME}/.claude ${localEnv:HOME}/.cline の部分を削除して構いません(削除しなくても、自動作成されるだけで害はありません)。
.cache/pip,.ansible(プロジェクトルート直下) はpip / ansible-galaxyのダウンロードキャッシュです- 名前付きDocker Volumeではなく、プロジェクトルート配下の通常ディレクトリへのbind mountにしています(Volumeを増やさない方針のため)
initializeCommandによりコンテナ起動前に自動でmkdir -pされますが、.gitkeepで空ディレクトリ自体もリポジトリに含めています (bind mountはホスト側にディレクトリが実在しないと起動失敗するため:docker: invalid mount config for type "bind": bind source path does not exist)- 中身は
.gitignore対象です。不要になったら単純にrm -rf .cache .ansibleで削除できます(次回起動時にinitializeCommandが空ディレクトリを作り直します)
.envは Git 管理対象外です(.gitignore済み)。誤ってコミットしないよう注意してください.envを更新した場合、コンテナの再起動(Reopen in Containerの再実行)が必要です