設定ファイルの書き方
- プロジェクトのルートディレクトリに
.devcontainer/devcontainer.json
を用意する。 - 以下、ローカル環境をホスト (
host
)、コンテナ環境をリモート (remote
) と呼ぶ。
プロパティ
name
(string
)
- VSCode 上で表示される開発コンテナ名(≠ コンテナ名)。
fowardPorts
(array
)
- 自動的にホストに転送するポート番号。
- 配列で複数のポートを指定可能。
remoteUser
(string
)
- コンテナ内で使用するユーザ名。
- デフォルトでは、コンテナ全体の実行ユーザ(
root
)。
features
(object
)
- コンテナに追加する DevContainer 機能と関連オプション。
イメージ、または Dockerfile 固有のプロパティ
image
(string
)
- イメージを使用する場合に必須。
- コンテナ作成時に使用するコンテナレジストリ内のイメージ名。
build.dockerfile
(string
)
- Dockerfile を使用する場合に必須。
- Dockerfile へのパス。
- 相対パスで指定する。
build.context
(string
)
- Dockerfile のビルドを実行する相対パス。
- デフォルトは
"."
。
build.args
(object
)
- Dockerfile をビルドするときに渡される名前と値のペア。
例:
build.options
(array
)
- Dockerfile をビルドするときにビルドコマンドへ渡すオプションの配列。
例:
build.target
(string
)
- Dockerfile をビルドするときに渡されるイメージビルドターゲット。
例:
DockerCompose 固有のプロパティ
dockerComposeFile
(string
/ array
)
- DockerCompose を使用する場合に必須。
- DockerCompose ファイルへのパス、またはファイルに対するパスの配列。
- 相対パスで指定する。
service
(string
)
- DockerCompose を使用する場合に必須。
- 実行後に接続するサービスを指定。
workspaceFolder
(string
)
- コンテナに接続する時、デフォルトで開くパス。
- デフォルトは
"/"
。
ライフサイクルスクリプト
initializeCommand
(string
, array
, object
)
- 開発コンテナの作成時、起動時を含む初期化中にホストマシンで実行するコマンド。
onCreateCommand
(string
, array
, object
)
- 開発コンテナの作成時、コンテナ内で実行されるコマンド。
updateContentCommand
(string
, array
, object
)
- 開発コンテナの作成中、新しいコンテンツが利用可能になる度、実行されるコマンド。
postCreateCommand
(string
, array
, object
)
- 開発コンテナ作成後、
dotfiles
や拡張機能のインストール前に実行するコマンド。 - 開発コンテナ作成時の 1 回のみ実行される。
- 実行ユーザは
remoteUser
で設定したユーザ。未設定の場合はroot
postStartCommand
(string
, array
, object
)
- VSCode Server 接続後に実行されるコマンド。
- 拡張機能以外の開発コンテナ設定が終わった後に実行される。
- リモート接続のたびに実行される。
- 実行ユーザは
remoteUser
で設定したユーザ。未設定の場合はroot
postAttachCommand
(string
, array
, object
)
postStartCommand
の後に実行されるコマンド。- 拡張機能のインストールと並列実行される。
- リモート接続のたびに実行される。
- 実行ユーザは
remoteUser
で設定したユーザ。未設定の場合はroot
customizations
- サポートツールの設定
customizations.vscode
(object
)
extensions
(array
)
- コンテナ作成時、コンテナ内にインストールする拡張機能。
settings
(object
)
- コンテナ固有の設定ファイル (
settings.json
) にデフォルト値を追加する。
参考
https://containers.dev/implementors/json_reference/