Compose サービスのサブセットを起動する
複数のサービスで構成され、Docker Compose を使用するアプリケーションがある場合は、Docker Compose 起動設定で既存の起動プロファイルを作成または編集することで、実行およびデバッグするサービスを構成できます。 起動プロファイルを使用すると、現在のシナリオに関係するサービスのみを動的に実行できます。 デバッグ エクスペリエンスをカスタマイズし、Browser Launch URL
などの特定の起動アクションを設定するための起動プロファイルを作成したり選択したりできます。 また、各サービスを個別に選択するか、Docker Compose プロファイルを選択することもできます。この場合、実行するサービスのグループを決定するために Compose ファイルも参照されます。
Docker Compose プロファイルの詳細については、「Using profiles with Compose」(Compose でのプロファイルの使用) を参照してください。
前提条件
- Visual Studio 2019 バージョン 16.10 以降
- Docker Compose によるコンテナー オーケストレーションを使用した .NET ソリューション
- Visual Studio 2022 または Visual Studio 2019 バージョン 16.10 以降
- Docker Compose によるコンテナー オーケストレーションを使用した .NET ソリューション
起動設定を管理する
docker-compose.yml に 5 つのサービスと 3 つの Compose プロファイル (web、web1、web2) が含まれる次の Docker Compose プロジェクトについて考えてみてください。
version: '3.9'
services:
webapplication1:
image: ${DOCKER_REGISTRY-}webapplication1
profiles: [web, web1]
build:
context: .
dockerfile: WebApplication1/Dockerfile
webapplication2:
image: ${DOCKER_REGISTRY-}webapplication2
profiles: [web, web2]
build:
context: .
dockerfile: WebApplication2/Dockerfile
webapplication3:
image: ${DOCKER_REGISTRY-}webapplication3
profiles: [web]
build:
context: .
dockerfile: WebApplication3/Dockerfile
external1:
image: redis
external2:
image: redis
Docker Compose 起動設定のダイアログを開くには、次のようなオプションがあります。
Visual Studio で、
** [デバッグ]** > ** [Docker Compose 起動設定の管理]** を選択します。Visual Studio
`docker-compose` プロジェクトを右クリックし、** [Docker Compose 起動設定の管理]** を選択しますクイック起動 (Ctrl+Q キー) を使用して [Docker Compose] を検索し、同じコマンドを見つけます。
次の例では、
注意
Docker Compose プロファイルのセクションは docker-compose.yml ファイルで定義されているプロファイルがある場合にのみ表示されます。
次の例は、Compose プロファイルでサービスをフィルターするのではなく、個々のサービス間で選択する方法を示しています。 ここでは、5 つのサービスのうちデバッグありの webapplication1
とデバッグなしの webapplication2
という 2 つのみを起動する test2
という名前の新しい起動プロファイルを作成した場合のダイアログの外観を示します。 また、この起動プロファイルによって、アプリケーションの起動時にブラウザーが起動し、
次に示すように、この情報は
{
"profiles": {
"test2": {
"commandName": "DockerCompose",
"composeLaunchServiceName": "webapplication1",
"serviceActions": {
"external1": "DoNotStart",
"external2": "DoNotStart",
"webapplication1": "StartDebugging",
"webapplication2": "StartWithoutDebugging",
"webapplication3": "DoNotStart"
},
"composeLaunchAction": "LaunchBrowser",
"commandVersion": "1.0",
"composeLaunchUrl": "{Scheme}://localhost:{ServicePort}"
}
}
}
Docker Compose プロファイルを使用する起動プロファイルを作成する
Compose プロファイルを使用する Visual Studio 起動プロファイルを作成して、起動動作をさらにカスタマイズすることもできます。
Compose プロファイルを使用する別のプロファイルを作成するには、[Docker Compose プロファイルを使用] を選択して web1
を選択します。 起動プロファイルに、3 つのサービス webapplication1
(web
と web1
の両方の Compose プロファイルに属する)、external1
、external2
が含まれるようになりました。 既定では、external1
や external2
などのソース コードのないサービスには、[デバッグなしで開始] の既定のアクションがあります。 ソース コードを含む .NET アプリケーションでは、既定で [デバッグ開始] が設定されます。
重要
Compose プロファイルが指定されないサービスは、すべての Compose プロファイルに暗黙的に含まれます。
この情報は、次のコードのように保存されます。 既定のアクションを変更しない限り、サービスとその既定のアクションの構成は保存されません。
{
"profiles": {
"test1": {
"commandName": "DockerCompose",
"composeProfile": {
"includes": [
"web1"
]
},
"commandVersion": "1.0"
}
}
}
webapplication1 のアクションを [デバッグなしで開始] に変更することもできます。 これで、launchSettings.json の設定は次のコードのようになります。
{
"profiles": {
"test1": {
"commandName": "DockerCompose",
"composeProfile": {
"includes": [
"web1"
],
"serviceActions": {
"webapplication1": "StartWithoutDebugging"
}
},
"commandVersion": "1.0"
}
}
}
Properties
次に、launchSettings.json の各プロパティの説明を示します。
プロパティ | [説明] |
---|---|
commandName | コマンドの名前。 デフォルトは "DockerCompose" です |
commandVersion | DockerCompose 起動プロファイルのスキーマを管理するために使用されるバージョン番号。 |
composeProfile | 起動プロファイル定義を定義する親プロパティ。 その子プロパティは includes と serviceActions です |
composeProfile - includes | 起動プロファイルを構成する Compose プロファイル名の一覧。 |
composeProfile - serviceActions | 選択した Compose プロファイル、サービス、および各サービスの起動アクションを一覧表示します |
serviceActions | 選択したサービスと起動アクションを一覧表示します。 |
composeLaunchAction | F5 または Ctrl+F5 で実行する起動アクションを指定します。 指定できる値には、None、LaunchBrowser、LaunchWCFTestClient があります。 |
composeLaunchUrl | ブラウザーを起動するときに使用される URL。 有効な置換トークンには、"{ServiceIPAddress}"、"{ServicePort}"、"{Scheme}" があります。 例: {Scheme}://{ServiceIPAddress}:{ServicePort} |
composeLaunchServiceName | composeLaunchUrl のトークンの置換に使用するサービスを指定します。 |