はい、以下に 🔖 第5章:devcontainer構成の実例(authリポジトリ) の中の

5.1 .devcontainer/devcontainer.json の解説と書き方 を、初学者向けに一行コメント付きで丁寧にまとめます。


🔖 第5章:devcontainer構成の実例(authリポジトリ)

5.1 .devcontainer/devcontainer.json の解説と書き方


✅ 要点まとめ


📁 ファイル構成例(authリポジトリ)

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でない)