2つの使用方法を提供します。
- DevContainerベースイメージ セットアップガイド
複数プロジェクトで使用する場合やチーム開発に最適
- GitHubで新規リポジトリ作成
- リポジトリ名:
devcontainer-base - 公開設定: Private(またはPublic)
- リポジトリ名:
以下のファイルをリポジトリに配置:
devcontainer-base/
├── Dockerfile
├── .github/
│ └── workflows/
│ └── build-image.yml
└── README.md
cd devcontainer-base
git init
git add .
git commit -m "Add: DevContainerベースイメージの初期設定"
git branch -M master
git remote add origin git@github.com:223n/devcontainer-base.git
git push -u origin masterGitHubリポジトリの「Actions」タブで自動ビルドが実行されることを確認
your-project/.devcontainer/devcontainer.json:
{
"name": "My Project",
"image": "ghcr.io/223n/devcontainer-base:latest",
"runArgs": ["--name", "my-project-dev"],
"remoteUser": "vscode",
"customizations": {
"vscode": {
"extensions": [
"esbenp.prettier-vscode",
"dbaeumer.vscode-eslint"
]
}
},
"forwardPorts": [8787],
"postCreateCommand": "npm install",
"postStartCommand": "bash -c 'if [ ! -f .envrc ]; then cp .envrc.template .envrc; fi && direnv allow && echo \"DevContainer ready!\"'"
}プライベートイメージの場合、GitHubで認証が必要:
-
GitHub Personal Access Token作成
- Settings > Developer settings > Personal access tokens
read:packages権限を付与
-
Dockerでログイン:
echo $GITHUB_TOKEN | docker login ghcr.io -u 223n --password-stdin- ✅ 複数プロジェクトで共有可能
- ✅ チーム全体で同じ環境
- ✅ 起動が高速(ビルド不要)
- ✅ CI/CDで自動更新
- ❌ 初回設定がやや複雑
- ❌ GitHubアカウント必要
- ❌ プライベートイメージは認証必要
単一プロジェクトで使用する場合や、試験的に使いたい場合に最適
local-build/ の内容を .devcontainer/ にコピー:
cd your-project
cp -r /path/to/local-build/* .devcontainer/cd .devcontainer
./build-base.shVS Codeで「Dev Containers: Reopen in Container」を実行
- ✅ オフラインで使用可能
- ✅ 即座に変更可能
- ✅ GitHubアカウント不要
- ❌ 初回ビルドに時間がかかる(5-10分)
- ❌ プロジェクトごとにビルド必要
- ❌ ディスク容量を消費
| 項目 | GitHub Container Registry | ローカルビルド |
|---|---|---|
| セットアップ時間 | 初回: 1-2分(プル) | 初回: 5-10分(ビルド) |
| 複数プロジェクト共有 | ✅ 簡単 | ❌ 各プロジェクトでビルド |
| チーム共有 | ✅ 簡単 | ❌ 各自ビルド必要 |
| オフライン使用 | ✅ 完全オフライン可 | |
| 変更の反映 | GitHub Actions経由 | ✅ 即座 |
| ディスク使用量 | 少ない | 多い |
| GitHub必要 | ✅ 必要 | ❌ 不要 |
| 推奨用途 | 本番・チーム開発 | 個人・試験的使用 |
# 1. ローカルビルド版でセットアップ
cd .devcontainer
./build-base.sh
# 2. 動作確認
# VS Code: "Dev Containers: Reopen in Container"
# 3. 問題なければ本格運用へ# 1. GitHubリポジトリ作成
# 2. Dockerfileをプッシュ
# 3. devcontainer.jsonを更新
# 変更前
"build": { "dockerfile": "Dockerfile" }
# 変更後
"image": "ghcr.io/223n/devcontainer-base:latest"# 認証確認
docker login ghcr.io
# イメージの存在確認
docker pull ghcr.io/223n/devcontainer-base:latest# Dockerデーモン確認
docker ps
# ディスク容量確認
docker system df
# キャッシュクリア
docker system prune -aDockerfileを編集- GitHubにプッシュ
- GitHub Actionsで自動ビルド
- プロジェクトで
docker pull実行
Dockerfileを編集./build-base.sh実行- VS Code: "Dev Containers: Rebuild Container"
問題が発生した場合:
- このガイドのトラブルシューティングを確認
local-build/README.mdまたはREADME.mdを参照- GitHubでIssueを作成