コンテンツにスキップ

設定ファイルの書き方

  • プロジェクトのルートディレクトリに .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": {
    "args": {
      "MYARG": "MYVALUE",
      "MYARGFORMENVVAR": "${localEnv:VARIABLE_NAME}"
    }
  }

build.options (array)

  • Dockerfile をビルドするときにビルドコマンドへ渡すオプションの配列。

例:

  "build": {
    "options": [
      "--add-host=host.docker.internal:host-gateway"
    ]
  }

build.target (string)

  • Dockerfile をビルドするときに渡されるイメージビルドターゲット。

例:

  "build": {
    "target": "development"
  }

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/