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 側のユーザーで開発できる |