コンテナツール拡張機能をカスタマイズする
コンテナツール拡張機能には、Dockerのビルドと実行の動作を制御し、デバッグのためのコンテナ起動の基礎を形成するいくつかのVisual Studio Codeタスクが含まれています。
これらのタスクは、多くの制御とカスタマイズを可能にします。最終的な設定は、一般的なデフォルト、プラットフォーム固有のデフォルト(Node.js、Python、.NETなど)、およびユーザー入力の組み合わせです。デフォルトと競合する場合、ユーザー入力が優先されます。
Visual Studio Codeタスクのすべての共通機能(たとえば、タスクを複合タスクにグループ化するなど)は、コンテナツール拡張機能のタスクでサポートされています。共通タスクの機能とプロパティの詳細については、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 プロパティ、またはpackage.json が存在するフォルダーのベース名から派生します。 |
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 で、もう1つのオプションは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 |
コンテナ内のサービスでSSLを有効にするために、ASP.NET Core 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 ビルド
構成設定 | デフォルト値 |
---|---|
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} |
コマンドの文字列戻り値。 |