🔖 第2章:devcontainerとは何か?

2.1 devcontainerの概要:Docker + VSCodeの開発者向けカプセル


✅ 要点まとめ


🧩 例えるなら…

devcontainerとは、**開発者のために用意された「作業小屋(仮設オフィス)」**です。

しかもこの作業小屋は、中の道具(ruby, rails, node, vimなど)もすべてあらかじめ整備済みで、しかもどのマシン上に立てても同じ空間が保証される。


🛠 構成ファイルと仕組み

devcontainerは、通常 .devcontainer ディレクトリに以下のようなファイルを含みます:

auth/
└── .devcontainer/
    ├── devcontainer.json     # VSCode用の定義ファイル
    └── Dockerfile            # 開発環境を構築するためのDockerイメージの定義

📄 devcontainer.json の例(Rails開発)

{
  "name": "auth-devcontainer",
  "dockerFile": "Dockerfile",
  "context": "..",
  "workspaceFolder": "/workspace",
  "mounts": [
    "source=${localWorkspaceFolder}/../app/auth,target=/workspace,type=bind"
  ],
  "forwardPorts": [3000],
  "remoteUser": "vscode"
}

この設定により、次のような開発体験が得られます:

機能 説明
dockerFile Ruby + Rails の環境が自動構築される
mounts app/auth ディレクトリをリアルタイムでマウントできる(修正反映)
forwardPorts Railsサーバをポート3000で起動し、VSCode経由でアクセスできる
remoteUser ホスト側ではなく devcontainer 側のユーザーで開発できる