はい、以下に 🔖 第5章:devcontainer構成の実例(authリポジトリ) の中の
5.1 .devcontainer/devcontainer.json
の解説と書き方 を、初学者向けに一行コメント付きで丁寧にまとめます。
.devcontainer/devcontainer.json
の解説と書き方devcontainer.json
は VSCodeが開発用コンテナを立ち上げるための設計図auth/
├── .devcontainer/
│ ├── devcontainer.json
│ └── Dockerfile
├── app/
├── config/
└── ...
.devcontainer/devcontainer.json
の中身(コメント付き)// .devcontainer/devcontainer.json
{
// 開発環境の名前(VSCodeのウィンドウタイトルなどに表示される)
"name": "auth-dev",
// 使用するDockerfileのファイル名(開発用のRubyやNodeなどを定義)
"dockerFile": "Dockerfile",
// Dockerビルドの文脈(context)。この例では一つ上のディレクトリを使う
"context": "..",
// コンテナ内で作業するディレクトリ(VSCodeで開く場所)
"workspaceFolder": "/workspace",
// 開発中に公開するポート(Railsの開発サーバー用)
"forwardPorts": [3000],
// ホストのauthコードをコンテナにバインドマウントして、即時反映させる
"mounts": [
"source=${localWorkspaceFolder},target=/workspace,type=bind"
],
// コンテナ構築後に自動で実行するコマンド(gemのインストールとDB初期化)
"postCreateCommand": "bundle install && rails db:setup",
// 開発時に使うユーザー。rootではなく、標準ユーザー"vscode"で実行
"remoteUser": "vscode"
}
キー名 | 用途説明 |
---|---|
name |
環境名(VSCodeで見える) |
dockerFile |
使用するDockerfile名 |
context |
Dockerビルドのベースパス |
workspaceFolder |
VSCodeの作業ディレクトリ |
forwardPorts |
ポート転送(例:Railsの3000) |
mounts |
コードのリアルタイム同期のためのバインド |
postCreateCommand |
初期セットアップコマンド |
remoteUser |
実行ユーザー名(rootでない) |