Een subset van Compose-services starten
Als u een toepassing hebt die uit meerdere services bestaat en Docker Compose gebruikt, kunt u configureren welke services worden uitgevoerd en fouten opsporen door een bestaand startprofiel te maken of te bewerken in de startinstellingen van Docker Compose. Met startprofielen kunt u alleen de services die van belang zijn voor uw huidige scenario dynamisch uitvoeren. U kunt profielen maken en selecteren om uw foutopsporingservaring aan te passen en specifieke startacties in te stellen, zoals Browser Launch URL
. U hebt ook de mogelijkheid om elke service afzonderlijk te kiezen of door een Docker Compose-profiel te kiezen, waarmee u ook uw Compose-bestand bekijkt om de groep services te bepalen die moeten worden uitgevoerd.
Zie Profielen gebruiken met Composevoor meer informatie over Docker Compose-profielen.
Voorwaarden
- Visual Studio 2019 versie 16.10 of hoger
- Een .NET-oplossing met Container Orchestration met Docker Compose
- Visual Studio 2022 of Visual Studio 2019 versie 16.10 of hoger
- Een .NET-oplossing met Container Orchestration met Docker Compose
Startinstellingen beheren
Overweeg het volgende Docker Compose-project waarin de docker-compose.yml vijf services en drie Compose-profielen (web, web1 en web2) heeft.
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
Er zijn enkele opties om het dialoogvenster instellingen voor het starten van Docker Compose te openen:
Kies in Visual Studio Debug>Manage Docker Compose Launch Settings:
Klik met de rechtermuisknop op het project van Visual Studio
docker-compose
en selecteer Startinstellingen voor Docker Compose beherenGebruik snel starten (Ctrl+Q) en zoek naar Docker Compose- om dezelfde opdracht te vinden.
In het onderstaande voorbeeld wordt het web1
Compose-profiel geselecteerd, waarmee de Services lijst wordt gefilterd op slechts de drie van de vijf die in dat profiel zijn opgenomen:
Notitie
De sectie Docker Compose-profielen wordt alleen weergegeven als er profielen zijn gedefinieerd in uw docker-compose.yml-bestanden.
In het volgende voorbeeld wordt het selecteren tussen afzonderlijke services gedemonstreerd in plaats van te filteren op de services in een Compose-profiel. Hier ziet u hoe het dialoogvenster eruit zou zien als u een nieuw startprofiel hebt gemaakt met de naam test2
dat slechts twee van de vijf services start, webapplication1
met foutopsporing en webapplication2
zonder foutopsporing. Met dit startprofiel wordt ook een browser gestart wanneer de toepassing begint, en deze wordt geopend op de startpagina van webapplication1
.
En deze informatie wordt opgeslagen in launchSettings.json zoals hieronder wordt weergegeven
{
"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}"
}
}
}
Een startprofiel maken dat gebruikmaakt van een Docker Compose-profiel
U kunt ook het startgedrag verder aanpassen door Visual Studio-startprofielen te maken die gebruikmaken van de Compose-profielen.
Als u een ander profiel wilt maken dat gebruikmaakt van het Compose-profiel, selecteert u Docker Compose-profielen gebruiken en kiest u web1
. Het startprofiel bevat nu drie services: webapplication1
(die deel uitmaakt van profielen voor zowel web
als web1
Opstellen), external1
en external2
. Standaard hebben de services zonder broncode, zoals external1
en external2
de standaardactie van Starten zonder foutopsporing. .NET-toepassingen met broncode worden standaard ingesteld op foutopsporingstarten.
Belangrijk
Als een service geen Compose-profiel opgeeft, wordt dit impliciet opgenomen in alle Compose-profielen.
Deze informatie wordt opgeslagen zoals weergegeven in de volgende code. De configuratie voor de service en de standaardactie worden niet opgeslagen, tenzij u de standaardactie wijzigt.
{
"profiles": {
"test1": {
"commandName": "DockerCompose",
"composeProfile": {
"includes": [
"web1"
]
},
"commandVersion": "1.0"
}
}
}
U kunt ook de actie van webtoepassing1 wijzigen in Starten zonder debuggen. De instellingen in launchSettings.json er vervolgens uitzien als de volgende code:
{
"profiles": {
"test1": {
"commandName": "DockerCompose",
"composeProfile": {
"includes": [
"web1"
],
"serviceActions": {
"webapplication1": "StartWithoutDebugging"
}
},
"commandVersion": "1.0"
}
}
}
Eigenschappen
Hier volgt een beschrijving van elke eigenschap in de launchSettings.json:
Vastgoed | Beschrijving |
---|---|
commandName | Naam van de opdracht. Standaardwaarde is "DockerCompose" |
commandVersion | Versienummer dat wordt gebruikt voor het beheren van het schema van het DockerCompose-startprofiel. |
composeProfile | Bovenliggende eigenschap waarmee de definitie van het startprofiel wordt gedefinieerd. De kindeigenschappen zijn includes en serviceActions |
composeProfile - bevat | Lijst met Compose-profielnamen die deel uitmaken van een startprofiel. |
composeProfile - serviceActions | Toont een lijst van de geselecteerde Compose-profielen, services en de startactie van elke service. |
serviceActions | Hiermee worden de geselecteerde services en de startactie weergegeven. |
composeLaunchAction | Hiermee geeft u de startactie die moet worden uitgevoerd op F5- of Ctrl+F5-. Toegestane waarden zijn None, LaunchBrowser en LaunchWCFTestClient. |
composeLaunchUrl | De URL die moet worden gebruikt bij het starten van de browser. Geldige vervangingstokens zijn {ServiceIPAddress}, {ServicePort} en {Scheme}. Bijvoorbeeld: {Scheme}://{ServiceIPAddress}:{ServicePort} |
composeLaunchServiceName | Geeft de service op die wordt gebruikt voor het vervangen van de tokens in composeLaunchUrl. |