Container Tools 拡張機能のカスタマイズ
Container Tools 拡張機能には、Docker の ビルド および 実行 の動作を制御し、デバッグ用のコンテナー起動の基盤となる Visual Studio Code タスクがいくつか含まれています。
これらのタスクにより、高度な制御とカスタマイズが可能になります。最終的な構成は、一般的な既定値、プラットフォーム固有の既定値(Node.js、Python、.NET など)、およびユーザー入力の組み合わせとなります。既定値と競合する場合、ユーザー入力が優先されます。
Visual Studio Code タスクのすべての一般的な機能(タスクを複合タスクにグループ化するなど)は、Container Tools 拡張機能タスクでサポートされています。一般的なタスクの機能とプロパティの詳細については、Visual Studio Code の カスタムタスク ドキュメントを参照してください。
Docker ビルドタスク
docker-build タスクは、Docker コマンドライン(CLI)を使用してイメージをビルドします。このタスクは単独で使用することも、コンテナー内でアプリケーションを実行およびデバッグするための一連のタスクの一部として使用することもできます。
docker-build タスクの最も重要な構成設定は dockerBuild と platform です。
dockerBuildオブジェクトは、Docker ビルドコマンドのパラメータを指定します。このオブジェクトで指定された値は、Docker ビルド CLI の呼び出しに直接適用されます。platformプロパティは、docker-buildタスクが Docker ビルドの既定値を決定する方法を変更するためのヒントです。
すべてのタスクプロパティの完全なリストについては、プロパティのリファレンス を参照してください。
プラットフォームのサポート
tasks.json の docker-build タスクを使用して任意のイメージをビルドできますが、拡張機能は Node.js、Python、および .NET Core に対して明示的なサポート(および簡略化された構成)を提供しています。
Node.js (docker-build)
既定値を使用した最小限の構成
特定のプラットフォームオプションを持たない Node.js ベースのイメージでは、platform プロパティを node に設定するだけで済みます。
{
"version": "2.0.0",
"tasks": [
{
"label": "Build Node Image",
"type": "docker-build",
"platform": "node"
}
]
}
プラットフォームの既定値
Node.js ベースのイメージの場合、docker-build タスクは以下のオプションを推論します。
| プロパティ | 推論される値 |
|---|---|
dockerBuild.context |
package.json が存在するのと同じディレクトリ。 |
dockerBuild.dockerfile |
package.json と同じディレクトリにある Dockerfile ファイル。 |
dockerBuild.tag |
package.json 内のアプリケーションの name プロパティ(定義されている場合)。それ以外の場合は package.json が存在するフォルダーのベース名。 |
dockerBuild.pull |
ビルド前に新しいベースイメージをプルするために既定で true になります。 |
Python (docker-build)
既定値を使用した最小限の構成
特定のプラットフォームオプションを持たない Python ベースのイメージでは、platform プロパティを python に設定するだけで済みます。
{
"tasks": [
{
"type": "docker-build",
"label": "docker-build",
"platform": "python"
}
]
}
プラットフォームの既定値
Python ベースのイメージの場合、docker-build タスクは以下のオプションを推論します。
| プロパティ | 推論される値 |
|---|---|
dockerBuild.context |
既定のコンテキストはワークスペースフォルダーです。 |
dockerBuild.dockerfile |
既定の Dockerfile パスはワークスペースフォルダーのルートにあります。 |
dockerBuild.tag |
ルートワークスペースフォルダーのベース名。 |
dockerBuild.pull |
ビルド前に新しいベースイメージをプルするために既定で true になります。 |
.NET (docker-build)
既定値を使用した最小限の構成
.NET ベースのイメージをビルドする場合、platform プロパティを省略して netCore オブジェクトを設定するだけで済みます(netCore オブジェクトが存在する場合、platform は暗黙的に netcore に設定されます)。appProject は必須プロパティであることに注意してください。
{
"version": "2.0.0",
"tasks": [
{
"label": "Build Node Image",
"type": "docker-build",
"netCore": {
"appProject": "${workspaceFolder}/project.csproj"
}
}
]
}
プラットフォームの既定値
.NET ベースのイメージの場合、docker-build タスクは以下のオプションを推論します。
| プロパティ | 推論される値 |
|---|---|
dockerBuild.context |
ルートワークスペースフォルダー。 |
dockerBuild.dockerfile |
ルートワークスペースフォルダーにある Dockerfile ファイル。 |
dockerBuild.tag |
ルートワークスペースフォルダーのベース名。 |
dockerBuild.pull |
ビルド前に新しいベースイメージをプルするために既定で true になります。 |
ビルドタスクのリファレンス
docker-build タスクの構成に使用できるすべてのプロパティを以下に示します。特に指定がない限り、すべてのプロパティは任意です。
| プロパティ | 説明 |
|---|---|
dockerBuild |
実行される docker build コマンドを制御するためのオプション(下記参照)。platform が設定されていない限り必須です。 |
platform |
プラットフォームを決定します:.NET (netcore) または Node.js (node)、および docker build コマンドの既定設定。 |
node |
Node.js プロジェクト固有のオプションを決定します(下記参照)。 |
python |
docker-build タスクには、Python 用のオブジェクトプロパティはありません。 |
netCore |
.NET プロジェクト固有のオプションを決定します(下記参照)。 |
dockerBuild オブジェクトのプロパティ
| プロパティ | 説明 | docker build CLI の同等項目 |
|---|---|---|
context |
ビルドコンテキストへのパス。 プラットフォームから推論される場合を除き、必須。 |
PATH |
dockerfile |
Dockerfile へのパス。 プラットフォームから推論される場合を除き、必須。 |
-f または --file |
tag |
イメージに適用されるタグ。 プラットフォームから推論される場合を除き、必須。 |
-t または --tag |
buildArgs |
コマンドラインに適用されるビルド引数。これはキーと値のペアのリストです。 | --build-arg |
labels |
イメージに追加されるラベル。これはキーと値のペア(JSON オブジェクト)のリストです。 ここで指定されたラベルに加えて、 visual-studio-code に設定されたラベル com.microsoft.created-by がイメージに追加されます。この動作は、labels オブジェクトの includeDefaults プロパティを false に設定することで無効にできます。 |
--label |
target |
ビルドする Dockerfile 内のターゲット。 | --target |
pull |
ビルド前に新しいベースイメージをプルするかどうか。 | --pull |
customOptions |
コンテキスト引数の前に追加する追加パラメータ。他のオプションとの競合解決や検証は行われません。 | (任意) |
node オブジェクトのプロパティ(docker-build タスク)
| プロパティ | 説明 | 既定値 |
|---|---|---|
package |
Dockerfile および docker-build タスクに関連付けられた package.json ファイルへのパス。 |
ルートワークスペースフォルダーにある package.json ファイル。 |
netCore オブジェクトのプロパティ(docker-build タスク)
| プロパティ | 説明 |
|---|---|
appProject |
Dockerfile および docker-build タスクに関連付けられた .NET プロジェクトファイル(.csproj, .fsproj など)。常に必須。 |
Docker 実行タスク
tasks.json の docker-run タスクは、Docker コマンドライン(CLI)を使用してコンテナーを作成および起動します。このタスクは単独で使用することも、コンテナー内でアプリケーションをデバッグするための一連のタスクの一部として使用することもできます。
docker-run タスクの最も重要な構成設定は dockerRun と platform です。
dockerRunオブジェクトは、Docker 実行コマンドのパラメータを指定します。このオブジェクトで指定された値は、Docker 実行 CLI の呼び出しに直接適用されます。platformプロパティは、docker-runタスクが Docker 実行の既定値を決定する方法を変更するためのヒントです。
すべてのタスクプロパティの完全なリストについては、プロパティのリファレンス を参照してください。
Docker 実行プラットフォームのサポート
docker-run タスクを使用して任意の Docker イメージを実行できますが、拡張機能は Node.js、Python、および .NET に対して明示的なサポート(および簡略化された構成)を提供しています。
Node.js (docker-run)
既定値を使用した最小限の構成
特定のプラットフォームオプションを持たない Node.js ベースのイメージでは、platform プロパティを node に設定するだけで済みます。
{
"version": "2.0.0",
"tasks": [
{
"label": "Run Node Image",
"node": "docker-run",
"platform": "node"
}
]
}
プラットフォームの既定値
Node.js ベースのイメージの場合、docker-run タスクは以下のオプションを推論します。
| プロパティ | 推論される値 |
|---|---|
dockerRun.command |
package.json 内の npm start スクリプト(存在する場合)から生成されます。存在しない場合は package.json の main プロパティから生成されます。 |
dockerRun.containerName |
アプリケーションパッケージ名から派生します。 |
dockerRun.image |
依存する docker-build タスクがある場合はそのタグ、そうでない場合はアプリケーションパッケージ名(package.json 内の name プロパティ、またはそれが存在するフォルダーのベース名から自身で派生)から派生します。 |
Python (docker-run)
Python ベースのイメージをビルドする場合、platform プロパティを省略して python オブジェクトを設定するだけで済みます(python オブジェクトが存在する場合、platform は暗黙的に python に設定されます)。
Django アプリの最小構成
{
"type": "docker-run",
"label": "docker-run: debug",
"dependsOn": ["docker-build"],
"python": {
"args": ["runserver", "0.0.0.0:8000", "--nothreading", "--noreload"],
"file": "path_to/manage.py"
}
}
Flask アプリの最小構成
{
"type": "docker-run",
"label": "docker-run: debug",
"dependsOn": ["docker-build"],
"dockerRun": {
"env": {
"FLASK_APP": "path_to/flask_entry_point.py"
}
},
"python": {
"args": ["run", "--no-debugger", "--no-reload", "--host", "0.0.0.0", "--port", "5000"],
"module": "flask"
}
}
汎用アプリの最小構成
{
"type": "docker-run",
"label": "docker-run: debug",
"dependsOn": ["docker-build"],
"python": {
"file": "path_to/app_entry_point.py"
}
}
プラットフォームの既定値
Python ベースのイメージの場合、docker-run タスクは以下のオプションを推論します。
| プロパティ | 推論される値 |
|---|---|
dockerRun.command |
Python オブジェクトによって生成され、Python デバッガーによって呼び出されます。 |
dockerRun.containerName |
ルートワークスペースフォルダーのベース名から派生します。 |
dockerRun.image |
依存する docker-build タスクがある場合はそのタグ、そうでない場合はルートワークスペースフォルダーのベース名から派生します。 |
.NET (docker-run)
既定値を使用した最小限の構成
.NET ベースのイメージをビルドする場合、platform プロパティを省略して netCore オブジェクトを設定するだけで済みます(netCore オブジェクトが存在する場合、platform は暗黙的に netcore に設定されます)。appProject は必須プロパティであることに注意してください。
{
"version": "2.0.0",
"tasks": [
{
"label": "Run .NET Core Image",
"type": "docker-run",
"netCore": {
"appProject": "${workspaceFolder}/project.csproj"
}
}
]
}
プラットフォームの既定値
.NET ベースのイメージの場合、docker-run タスクは以下のオプションを推論します。
| プロパティ | 推論される値 |
|---|---|
dockerRun.containerName |
ルートワークスペースフォルダーのベース名から派生します。 |
dockerRun.env |
必要な環境変数として ASPNETCORE_ENVIRONMENT、ASPNETCORE_URLS、および DOTNET_USE_POLLING_FILE_WATCHER を追加します。 |
dockerRun.image |
依存する docker-build タスクがある場合はそのタグ、そうでない場合はルートワークスペースフォルダーのベース名から派生します。 |
dockerRun.os |
Linux |
dockerRun.volumes |
必要なボリュームとして、ローカルアプリケーションフォルダー、ソースフォルダー、デバッガーフォルダー、NuGet パッケージフォルダー、および NuGet フォールバックフォルダーを追加します。 |
実行タスクのリファレンス
docker-run タスクの構成に使用できるすべてのプロパティを以下に示します。特に指定がない限り、すべてのプロパティは任意です。
| プロパティ | 説明 |
|---|---|
dockerRun |
実行される docker run コマンドを制御するためのオプション(下記参照)。platform が設定されていない限り必須です。 |
platform |
プラットフォームを決定します:.NET (netcore) または Node.js (node)、および docker run コマンドの既定設定。 |
node |
Node.js プロジェクトの場合、これは様々なオプションを制御します(下記参照)。 |
python |
Python プロジェクトの場合、これは様々なオプションを制御します(下記参照)。 |
netCore |
.NET プロジェクトの場合、これは様々なオプションを制御します(下記参照)。 |
dockerRun オブジェクトのプロパティ
| プロパティ | 説明 | CLI の同等項目 |
|---|---|---|
image |
実行するイメージの名前(タグ)。 プラットフォームから推論される場合を除き、必須。 |
IMAGE |
command |
コンテナー起動時に実行するコマンド。 プラットフォームから推論される場合を除き、必須。 |
COMMAND [ARG...] |
containerName |
起動したコンテナーに付与される名前。 プラットフォームから推論される場合を除き、必須。 |
--name |
env |
コンテナー内で設定される環境変数。これはキーと値のペアのリストです。 | -e または --env |
envFiles |
これは .env ファイルのリストです。 |
--env-file |
labels |
起動したコンテナーに付与されるラベル。これはキーと値のペアのリストです。 | --label |
network |
コンテナーが接続されるネットワークの名前。 | --network |
networkAlias |
起動したコンテナーのネットワークスコープのエイリアス。 | --network-alias |
os |
既定は Linux、もう一つのオプションは Windows。使用されるコンテナーオペレーティングシステム。 |
該当なし |
ports |
コンテナーからホストへ公開(マッピング)するポート。これはオブジェクトのリストです(下記参照)。 | -p または --publish |
portsPublishAll |
Docker イメージによって公開されるすべてのポートを公開するかどうか。ポートが明示的に公開されていない場合、既定で true になります。 |
-P |
extraHosts |
DNS 解決のためにコンテナーに追加するホスト。これはオブジェクトのリストです(下記参照)。 | --add-host |
volumes |
起動したコンテナーにマッピングするボリューム。これはオブジェクトのリストです(下記参照)。 | -v または --volume |
remove |
停止後にコンテナーを削除するかどうか。 | --rm |
customOptions |
イメージ引数の前に追加する任意の追加パラメータ。他のオプションとの競合解決や検証は行われません。 | (任意) |
ports オブジェクトのプロパティ
| プロパティ | 説明 | 既定値 |
|---|---|---|
containerPort |
コンテナー上でバインドされるポート番号。 必須。 |
|
hostPort |
ホスト上でバインドされるポート番号。 | (Docker によってランダムに選択) |
protocol |
バインディングのプロトコル(tcp または udp)。 |
tcp |
extraHosts オブジェクトのプロパティ
| プロパティ | 説明 |
|---|---|
hostname |
DNS 解決用のホスト名。 必須。 |
ip |
上記のホスト名に関連付けられた IP アドレス。 必須。 |
volumes オブジェクトのプロパティ
| プロパティ | 説明 | 既定値 |
|---|---|---|
localPath |
マッピングされるローカルマシン上のパス。 必須。 |
|
containerPath |
ローカルパスがマッピングされるコンテナー内のパス。 必須。 |
|
permissions |
マッピングされたパスに対するコンテナーの権限。ro(読み取り専用)または rw(読み書き可能)を指定できます。 |
コンテナーに依存。 |
node オブジェクトのプロパティ(docker-run タスク)
| プロパティ | 説明 | 既定値 |
|---|---|---|
package |
docker-run タスクに関連付けられた package.json ファイルへのパス。 |
ルートワークスペースフォルダーにある package.json ファイル。 |
enableDebugging |
コンテナー内でデバッグを有効にするかどうか。 | false |
inspectMode |
アプリケーションとデバッガー間の初期インタラクションを定義します(default または break)。値 default は、デバッガーがアタッチされるまでアプリケーションを実行させます。値 break は、デバッガーがアタッチされるまでアプリケーションの実行を一時停止させます。 |
default |
inspectPort |
デバッグが発生するポート。 | 9229 |
python オブジェクトのプロパティ(docker-run タスク)
| プロパティ | 説明 | 既定値 |
|---|---|---|
args |
Python アプリに渡される引数。 | プラットフォーム依存。スキャフォールディングの既定値は上記を参照。 |
debugPort |
デバッガーがリッスンするポート。 | 5678 |
wait |
デバッガーのアタッチを待機するかどうか。 | true |
module |
実行する Python モジュール(モジュール または ファイルのいずれかを選択する必要があります)。 | |
file |
実行する Python ファイル(モジュール または ファイルのいずれかを選択する必要があります)。 |
netCore オブジェクトのプロパティ(docker-run タスク)
| プロパティ | 説明 |
|---|---|
appProject |
docker-run タスクに関連付けられた .NET プロジェクトファイル(.csproj, .fsproj など)。必須。 |
configureSsl |
ASP.NET Core SSL 証明書およびその他の設定を構成して、コンテナー内のサービスで SSL を有効にするかどうか。 |
enableDebugging |
デバッグのために起動したコンテナーを有効にするかどうか。これにより、デバッグに必要な追加のボリュームマッピングやその他のオプションが推論されます。 |
Docker Compose タスク
tasks.json の docker-compose タスクは、Docker Compose コマンドライン(CLI)を使用してコンテナーを作成および起動します。このタスクは単独で使用することも、コンテナー内でアプリケーションをデバッグするための一連のタスクの一部として使用することもできます。
docker-compose タスクの最も重要な構成設定は dockerCompose です。
dockerComposeオブジェクトは、Docker Compose コマンドのパラメータを指定します。このオブジェクトで指定された値は、Docker Compose CLI の呼び出しに直接適用されます。
すべてのタスクプロパティの完全なリストについては、プロパティのリファレンス を参照してください。
構成例
{
"version": "2.0.0",
"tasks": [
{
"label": "Run docker-compose up",
"type": "docker-compose",
"dockerCompose": {
"up": {
"detached": true,
"build": true,
"services": ["myservice"]
},
"files": [
"${workspaceFolder}/docker-compose.yml",
"${workspaceFolder}/docker-compose.debug.yml"
]
}
}
]
}
Compose タスクのリファレンス
docker-compose タスクの構成に使用できるすべてのプロパティを以下に示します。特に指定がない限り、すべてのプロパティは任意です。
| プロパティ | 説明 |
|---|---|
dockerCompose |
実行される docker-compose コマンドを制御するためのオプション(下記参照)。必須。 |
dockerCompose オブジェクトのプロパティ
| プロパティ | 説明 | CLI の同等項目 |
|---|---|---|
up |
docker-compose up コマンドを実行します。これまたは down のいずれかを指定する必要がありますが、両方を同時に指定することはできません。 |
docker-compose up |
down |
docker-compose down コマンドを実行します。これまたは up のいずれかを指定する必要がありますが、両方を同時に指定することはできません。 |
docker-compose down |
files |
docker-compose コマンドで使用する Docker Compose YAML ファイルのリスト。指定されていない場合、Docker Compose CLI は docker-compose.yml と docker-compose.override.yml を探します。 |
-f <ファイル> |
envFile |
読み込まれ、コンテナーに適用される環境変数のファイル。 | --env-file <ファイル> |
projectName |
Docker オブジェクトの名前付けとラベル付けに使用する代替プロジェクト名。Compose Up 時に代替プロジェクト名を使用している場合、Compose Down 時にも同じプロジェクト名を指定する必要があります。 | --project-name <名前> |
up オブジェクトのプロパティ
| プロパティ | 説明 | CLI の同等項目 | 既定値 |
|---|---|---|---|
detached |
デタッチモードで実行するかどうか。 | -d |
true |
build |
実行前にビルドするかどうか。 | --build |
true |
scale |
実行する各サービスのインスタンス数。これはキーと値のペアのリストです。 | --scale サービス=数 |
|
services |
起動するサービスのサブセット。profiles と組み合わせることはできません。 |
[サービス...] |
(すべて) |
profiles |
起動するプロファイルのサブセット。services と組み合わせることはできません。 |
--profile <プロファイル> |
(すべて) |
customOptions |
up 引数の後に追加する任意の追加パラメータ。他のオプションとの競合解決や検証は行われません。 |
(任意) |
down オブジェクトのプロパティ
| プロパティ | 説明 | CLI の同等項目 | 既定値 |
|---|---|---|---|
removeImages |
イメージを削除するかどうか、およびどのイメージを削除するか。all はサービスで使用されるすべてのイメージを削除し、local はカスタムタグのないイメージのみを削除します。この設定を未設定のままにすると、イメージは削除されません。 |
--rmi |
|
removeVolumes |
名前付きボリュームを削除するかどうか。 | -v |
false |
customOptions |
down 引数の後に追加する任意の追加パラメータ。他のオプションとの競合解決や検証は行われません。 |
(任意) |
コマンドのカスタマイズ
Container Tools 拡張機能は、イメージのビルド、コンテナーの実行、コンテナーへのアタッチ、コンテナーログの表示など、さまざまな操作を実行する際に多くの Docker CLI コマンドを実行します。これらのコマンドの一部には、非常に特定のシナリオで使用されるオプションの引数が多数含まれています。上記の Visual Studio Code タスクの代替として、タスクを使用していない場合にいくつかのコマンドをカスタマイズできます。
例えば、Compose Up コマンド内のトークン ${serviceList} および ${profileList} を使用すると、Docker Compose YAML ファイル内のサービスの一部を簡単に起動できます。
これらのカスタマイズ可能な Docker コマンドごとに、実行するテンプレートを設定する構成設定が用意されています。あるいは、複数のテンプレートを定義し、必要に応じて正規表現を使用して、一致した場合にそのテンプレートを使用すべきコンテキストを示唆させることもできます。テンプレートは launch.json や tasks.json に似たトークン(例: ${workspaceFolder})をサポートしています。
設定の JSON スキーマ
各テンプレート(下記参照)の構成には 2 つのオプションがあります。最初のオプションは、既定の動作をオーバーライドする単一のテンプレートです。
{
"containers.commands.build": "docker build --rm -f \"${dockerfile}\" -t ${tag} \"${context}\""
}
2 番目のオプションは、match 正規表現およびユーザー入力に基づいて選択される複数のテンプレートです。
例えば、次の例では 3 つのテンプレートが示されています。
{
"containers.commands.build": [
{
"label": "Default build command",
"template": "docker build --rm -f \"${dockerfile}\" -t ${tag} \"${context}\""
},
{
"label": "Alpine-specific build command",
"template": "docker build -p 1234:1234 -f \"${dockerfile}\" -t ${tag} \"${context}\"",
"match": "alpine"
}
]
}
選択動作
実行用に選択されるコマンドテンプレートは、以下のルールに基づいて選ばれます。
- 設定が構成されていない場合は、既定のコマンドテンプレートが選択されます。
- 単一のテンプレートのみが構成されている場合(上記の最初の例)、そのテンプレートが選択されます。
- 複数のテンプレートが構成されている場合
- 制約付きテンプレートがチェックされます。制約付きテンプレートには
matchがあります。match正規表現は、コンテキストヒント(画像名、コンテナー名など)と照合されます。 - 複数の制約付きテンプレートが適用される場合、ユーザーは選択を促されます。1 つのみ適用される場合、ユーザーへのプロンプトは表示されません。
- 適用される制約付きテンプレートがない場合、制約なしテンプレートがチェックされます。制約なしテンプレートには
matchがないため、常に適用可能です。 - 複数の制約なしテンプレートが適用される場合、ユーザーは選択を促されます。1 つのみ適用される場合、ユーザーへのプロンプトは表示されません。
- 制約付きテンプレートがチェックされます。制約付きテンプレートには
Docker ビルド
| 構成設定 | 既定値 |
|---|---|
docker.commands.build |
${containerCommand} build --rm -f "${dockerfile}" -t ${tag} "${context}" |
サポートされるトークン
| トークン | 説明 |
|---|---|
${containerCommand} |
コンテナーコマンドを実行するために使用される CLI コマンド/実行ファイル。 |
${dockerfile} |
選択された Dockerfile のワークスペース相対パス。 |
${tag} |
ビルドコマンドの呼び出し時にユーザーが入力/確認した値。以前にビルドされたことがある場合は、その Dockerfile に対して以前に入力された値が既定値になります。 |
${context} |
設定されている場合は containers.imageBuildContextPath 構成設定の値。それ以外の場合は Dockerfile が存在するワークスペース相対フォルダー。 |
注:
containers.commands.build設定に${tag}トークンが含まれていない場合、ユーザーはタグの入力/確認を求められません。
注:
match正規表現は、選択された Dockerfile 名およびワークスペースフォルダー名と照合されます。
Docker 実行
| 構成設定 | 既定値 |
|---|---|
containers.commands.run |
${containerCommand} run --rm -d ${exposedPorts} ${tag} |
containers.commands.runInteractive |
${containerCommand} run --rm -it ${exposedPorts} ${tag} |
サポートされるトークン
| トークン | 説明 |
|---|---|
${containerCommand} |
コンテナーコマンドを実行するために使用される CLI コマンド/実行ファイル。 |
${exposedPorts} |
イメージ内で公開されているポートのリスト(最終的には Dockerfile から)から生成されます。各公開ポートはローカルマシンの同じポートにマッピングされます。例えば、"EXPOSE 5000 5001" は "-p 5000:5000 -p 5001:5001" を生成します。 |
${tag} |
選択されたイメージの完全なタグ。 |
注:
match正規表現は、選択されたイメージの完全なタグと照合されます。
コンテナーアタッチ
| 構成設定 | 既定値 |
|---|---|
containers.commands.attach |
${containerCommand} exec -it ${containerId} ${shellCommand} |
サポートされるトークン
| トークン | 説明 |
|---|---|
${containerCommand} |
コンテナーコマンドを実行するために使用される CLI コマンド/実行ファイル。 |
${containerId} |
アタッチするコンテナーの ID。 |
${shellCommand} |
コンテナー内に bash が存在する場合はここに置換され、存在しない場合は sh が使用されます。Windows コンテナーでは、常に cmd が使用されます。 |
注:
match正規表現は、コンテナー名およびコンテナーイメージの完全なタグと照合されます。
コンテナーログ
| 構成設定 | 既定値 |
|---|---|
containers.commands.logs |
${containerCommand} logs -f ${containerId} |
サポートされるトークン
| トークン | 説明 |
|---|---|
${containerCommand} |
コンテナーコマンドを実行するために使用される CLI コマンド/実行ファイル。 |
${containerId} |
ログを表示するコンテナーの ID。 |
注:
match正規表現は、コンテナー名およびコンテナーイメージの完全なタグと照合されます。
Docker Compose Up
| 構成設定 | 既定値 |
|---|---|
containers.commands.composeUp |
${composeCommand} ${configurationFile} up ${detached} ${build} |
サポートされるトークン
| トークン | 説明 |
|---|---|
${configurationFile} |
-f に、選択された Docker Compose YAML ファイルへのワークスペース相対パスを足したものに設定されます。 |
${detached} |
containers.composeDetached 構成設定が true に設定されている場合は -d に設定されます。それ以外の場合は "" に設定されます。 |
${build} |
containers.composeBuild 構成設定が true に設定されている場合は --build に設定されます。それ以外の場合は "" に設定されます。 |
${serviceList} |
指定されている場合、コマンド実行時に起動するサービスのサブセットの入力を求めます。 |
${profileList} |
指定されており、かつ Docker Compose YAML ファイルにプロファイルが含まれている場合、コマンド実行時に起動するプロファイルのサブセットの入力を求めます。 |
${composeCommand} |
containers.composeCommand 設定が設定されている場合はその値に、それ以外の場合は拡張機能が使用するコマンド(docker compose または docker-compose)を自動的に決定しようとします。 |
Docker Compose Down
| 構成設定 | 既定値 |
|---|---|
containers.commands.composeDown |
${composeCommand} ${configurationFile} down |
サポートされるトークン
| トークン | 説明 |
|---|---|
${configurationFile} |
-f に、選択された Docker Compose YAML ファイルへのワークスペース相対パスを足したものに設定されます。 |
${composeCommand} |
containers.composeCommand 設定が設定されている場合はその値に、それ以外の場合は拡張機能が使用するコマンド(docker compose または docker-compose)を自動的に決定しようとします。 |
その他サポートされているトークン
コマンド固有のサポートトークンに加え、すべてのコマンドテンプレートで以下のトークンがサポートされています。
| トークン | 説明 |
|---|---|
${workspaceFolder} |
選択されたワークスペースフォルダーのパス。 |
${config:some.setting.identifier} |
文字列、数値、またはブール値である限り、任意の構成設定の値。これらの設定識別子は任意に定義でき、Visual Studio Code や特定の拡張機能に属している必要はありません。 |
${env:Name} |
環境変数の値。 |
${command:commandID} |
コマンドの文字列の戻り値。 |