Starta en delmängd av Compose-tjänster
Om du har ett program som består av flera tjänster och använder Docker Compose kan du konfigurera vilka tjänster som körs och felsökas genom att skapa eller redigera en befintlig startprofil i Docker Compose-startinställningarna. Med startprofiler kan du endast köra de tjänster som är viktiga för ditt aktuella scenario dynamiskt. Du kan skapa och välja från startprofiler för att anpassa felsökningsfunktionen och ange specifika startåtgärder, till exempel Browser Launch URL
. Du kan också välja att antingen välja varje tjänst individuellt eller genom att välja en Docker Compose-profil, som också tittar på din Compose-fil för att fastställa vilken grupp av tjänster som ska köras.
Information om Docker Compose-profiler finns i Använda profiler med Compose.
Förutsättningar
- Visual Studio 2019 version 16.10 eller senare
- En .NET-lösning med Container Orchestration med Docker Compose
- Visual Studio 2022 eller Visual Studio 2019 version 16.10 eller senare
- En .NET-lösning med Container Orchestration med Docker Compose
Hantera startinställningar
Överväg följande Docker Compose-projekt där docker-compose.yml har fem tjänster och tre Compose-profiler (webb, web1 och web2).
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
Det finns några alternativ för att öppna dialogrutan Docker Compose-startinställningar:
I Visual Studio väljer du Felsöka>Hantera Startinställningar för Docker Compose:
Högerklicka på Visual Studio
docker-compose
-projektet och välj Hantera Startinställningar för Docker ComposeAnvänd snabbstarten (Ctrl+Q) och sök efter Docker Compose- för att hitta samma kommando.
I exemplet nedan är profilen web1
Compose markerad, vilket filtrerar listan Services till endast de tre av fem som ingår i profilen:
Not
Avsnittet Docker Compose-profiler visas bara om det finns profiler som definierats i dina docker-compose.yml filer.
I nästa exempel visas hur du väljer mellan enskilda tjänster i stället för att filtrera till tjänsterna i en Compose-profil. Här visar vi hur dialogrutan skulle se ut om du skapade en ny startprofil med namnet test2
som bara startar två av de fem tjänsterna, webapplication1
med felsökning och webapplication2
utan felsökning. Den här startprofilen startar också en webbläsare när programmet startar och öppnar den på startsidan för webapplication1
.
Och den här informationen sparas i launchSettings.json enligt nedan
{
"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}"
}
}
}
Skapa en startprofil som använder en Docker Compose-profil
Du kan också ytterligare anpassa startbeteenden genom att skapa Visual Studio-startprofiler som använder Sig av Compose-profilerna.
Om du vill skapa en annan profil som använder Sig av Compose-profilen väljer du Använd Docker Compose-profiler och väljer web1
. Nu innehåller startprofilen tre tjänster: webapplication1
(som tillhör både web
- och web1
Compose-profiler), external1
och external2
. Som standard har tjänsterna utan källkod som external1
och external2
standardåtgärden Starta utan att felsöka. .NET-program med källkod som standard Börja felsöka.
Viktig
Om en tjänst inte specificerar en Compose-profil inkluderas den implicit i alla Compose-profiler.
Den här informationen sparas enligt följande kod. Konfigurationen för tjänsten och dess standardåtgärd sparas inte om du inte ändrar standardåtgärden.
{
"profiles": {
"test1": {
"commandName": "DockerCompose",
"composeProfile": {
"includes": [
"web1"
]
},
"commandVersion": "1.0"
}
}
}
Du kan också ändra åtgärden webapplication1 till Starta utan att felsöka. Inställningarna i launchSettings.json ser sedan ut som följande kod:
{
"profiles": {
"test1": {
"commandName": "DockerCompose",
"composeProfile": {
"includes": [
"web1"
],
"serviceActions": {
"webapplication1": "StartWithoutDebugging"
}
},
"commandVersion": "1.0"
}
}
}
Egenskaper
Här är en beskrivning av varje egenskap i launchSettings.json:
Egenskap | Beskrivning |
---|---|
commandName | Namnet på kommandot. Standardinställningen är "DockerCompose" |
kommandoVersion | Versionsnummer som används för att hantera schemat för DockerCompose-startprofilen. |
composeProfile | Överordnad egenskap som definierar startprofildefinitionen. Dess underordnade egenskaper är includes och serviceActions |
composeProfile – innehåller | Lista över Compose-profilnamn som utgör en startkonfiguration. |
composeProfile – serviceActions | Visar de valda Compose-profilerna, tjänsterna och startåtgärden för varje tjänst. |
serviceåtgärder | Visar en lista över de valda tjänsterna och startåtgärden. |
skapaStartÅtgärd | Anger den startåtgärd som ska utföras på F5 eller Ctrl+F5. Tillåtna värden är None, LaunchBrowser och LaunchWCFTestClient. |
sammanställStartUrl | Url:en som ska användas när webbläsaren startas. Giltiga ersättningstoken är {ServiceIPAddress}, {ServicePort} och {Scheme}. Exempel: {Scheme}://{ServiceIPAddress}:{ServicePort} |
komponeraStarttjänstnamn | Anger den tjänst som används för att ersätta token i composeLaunchUrl. |