コンテナツール拡張機能をカスタマイズする
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オブジェクト) です。 ここで指定されたラベルに加えて、 com.microsoft.created-byというラベルがイメージに追加され、visual-studio-codeに設定されます。この動作は、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 [ARG...] |
containerName |
起動されたコンテナに与えられた名前。 プラットフォームから推論されない限り必須。 |
--name |
環境 |
コンテナに設定される環境変数。これはキーと値のペアのリストです。 | -e または --env |
envFiles |
これは.envファイルのリストです。 |
--env-file |
labels |
起動されたコンテナに与えられたラベル。これはキーと値のペアのリストです。 | --label |
network |
コンテナが接続されるネットワークの名前。 | --network |
networkAlias |
起動されたコンテナのネットワークスコープエイリアス。 | --network-alias |
os |
デフォルトはLinuxで、他のオプションはWindowsです。使用されるコンテナオペレーティングシステム。 |
N/A |
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 <file> |
envFile |
読み込まれてコンテナに適用される環境変数のファイル。 | --env-file <file> |
projectName |
Dockerオブジェクトの命名とラベル付けに使用する代替プロジェクト名。compose up時に代替プロジェクト名を使用する場合、compose down時も同じプロジェクト名を指定する必要があります。 | --project-name <name> |
upオブジェクトプロパティ
| プロパティ | 説明 | CLI同等 | 既定値 |
|---|---|---|---|
detached |
デタッチして実行するかどうか。 | -d |
true |
build |
実行前にビルドするかどうか。 | --build |
true |
scale |
各サービスで実行するインスタンスの数。これはキーと値のペアのリストです。 | --scale SERVICE=NUM |
|
services |
開始するサービスの一部。profilesと組み合わせることはできません。 |
[SERVICE...] |
(すべて) |
profiles |
開始するプロファイルの一部。servicesと組み合わせることはできません。 |
--profile <profile> |
(すべて) |
customOptions |
up引数の後に追加する任意の追加パラメーター。他のオプションとの競合を解決したり、このオプションを検証したりする試みは行われません。 |
(任意) |
downオブジェクトプロパティ
| プロパティ | 説明 | CLI同等 | 既定値 |
|---|---|---|---|
removeImages |
イメージを削除するかどうか、およびどのイメージを削除するか。allはすべてのサービスによって使用されるすべてのイメージを削除し、localはカスタムタグのないイメージのみを削除します。これを設定しない場合、イメージは削除されません。 |
--rmi |
|
removeVolumes |
名前付きボリュームを削除するかどうか。 | -v |
false |
customOptions |
down引数の後に追加する任意の追加パラメーター。他のオプションとの競合を解決したり、このオプションを検証したりする試みは行われません。 |
(任意) |
コマンドのカスタマイズ
コンテナツール拡張機能は、イメージのビルド、コンテナの実行、コンテナへのアタッチ、コンテナログの表示など、さまざまな操作を実行する際に多数の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 Build
| 構成設定 | デフォルト値 |
|---|---|
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 Run
| 構成設定 | デフォルト値 |
|---|---|
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正規表現は、選択されたイメージの完全なタグと比較されます。
Container Attach
| 構成設定 | デフォルト値 |
|---|---|
containers.commands.attach |
${containerCommand} exec -it ${containerId} ${shellCommand} |
サポートされているトークン
| トークン | 説明 |
|---|---|
${containerCommand} |
コンテナコマンドの実行に使用されるCLIコマンド/実行可能ファイル。 |
${containerId} |
アタッチするコンテナのID。 |
${shellCommand} |
コンテナにbashが存在する場合はここに置換され、そうでない場合はshが置換されます。Windowsコンテナでは、常にcmdが使用されます。 |
注:
match正規表現は、コンテナ名とコンテナイメージの完全なタグと比較されます。
Container Logs
| 構成設定 | デフォルト値 |
|---|---|
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} |
コマンドの文字列戻り値。 |