Starten Sie eine Teilmenge der Compose-Dienste
Wenn Sie über eine Anwendung verfügen, die aus mehreren Diensten besteht und Docker Compose verwendet, können Sie konfigurieren, welche Dienste ausgeführt und gedebuggt werden, indem Sie ein vorhandenes Startprofil in den Starteinstellungen von Docker Compose erstellen oder bearbeiten. Das Starten von Profilen ermöglicht es Ihnen, nur die Dienste dynamisch auszuführen, die für Ihr aktuelles Szenario von Bedeutung sind. Sie können Startprofile erstellen und auswählen, um die Debugging-Erfahrung anzupassen und bestimmte Startaktionen wie Browser Launch URL
festzulegen. Sie haben auch die Möglichkeit, jeden Dienst einzeln auszuwählen, oder indem Sie ein Docker Compose-Profil auswählen, das auch ihre Verfassendatei betrachtet, um die auszuführende Gruppe von Diensten zu bestimmen.
Informationen zu Docker Compose-Profilen finden Sie unter Verwenden von Profilen mit Compose.
Voraussetzungen
- Visual Studio 2019, Version 16.10 oder höher
- Eine .NET-Lösung mit Container Orchestration mit Docker Compose
- Visual Studio 2022 oder Visual Studio 2019, Version 16.10 oder höher
- Eine .NET-Lösung mit Container Orchestration mit Docker Compose
Verwalten von Starteinstellungen
Betrachten Sie das folgende Docker-Compose-Projekt, in dem die docker-compose.yml über fünf Dienste und drei Compose-Profile (web, web1 und web2) verfügt.
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
Es gibt einige Optionen zum Öffnen des Dialogs "Starteinstellungen für Docker Compose":
Wählen Sie in Visual Studio Debuggen>Docker Compose-Starteinstellungen verwalten aus:
Klicken Sie mit der rechten Maustaste auf das Visual Studio-
docker-compose
-Projekt und wählen Sie Docker Compose-Startkonfiguration verwaltenVerwenden Sie die Schnellstartleiste (STRG+Q), und suchen Sie nach Docker Compose, um denselben Befehl zu finden.
Im folgenden Beispiel wird das web1
Compose-Profil ausgewählt, das die Liste Dienste auf nur drei von fünf filtert, die in diesem Profil enthalten sind.
Anmerkung
Der Abschnitt "Docker Compose-Profile" wird nur angezeigt, wenn in Ihren docker-compose.yml Dateien Profile definiert sind.
Im nächsten Beispiel wird die Auswahl zwischen einzelnen Diensten veranschaulicht, anstatt nach den Diensten in einem Verfassenprofil zu filtern. Hier zeigen wir, wie das Dialogfeld aussehen würde, wenn Sie ein neues Startprofil mit dem Namen test2
erstellt haben, das nur zwei der fünf Dienste startet, webapplication1
mit Debugging und webapplication2
ohne Debuggen. Dieses Startprofil startet auch einen Browser, wenn die Anwendung startet, und öffnet ihn auf der Startseite von webapplication1
.
Und diese Informationen werden wie unten dargestellt in launchSettings.json gespeichert.
{
"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}"
}
}
}
Erstellen eines Startprofils, das ein Docker Compose-Profil verwendet
Sie können das Startverhalten außerdem weiter anpassen, indem Sie Visual Studio-Startprofile erstellen, die Compose-Profile nutzen.
Wenn Sie ein weiteres Profil erstellen möchten, bei dem das Compose-Profil genutzt wird, wählen Sie Docker Compose-Profile verwenden und dann web1
aus. Jetzt umfasst das Startprofil drei Dienste: webapplication1
(der sowohl zu den web
- als auch web1
-Compose-Profilen gehört), external1
und external2
. Standardmäßig verfügen die Dienste ohne Quellcode wie external1
und external2
über die Standardaktion Starten ohne Debuggen. Bei .NET-Anwendungen mit Quellcode ist Debuggen starten die Standardeinstellung.
Wichtig
Wenn ein Dienst kein Compose-Profil angibt, wird er implizit in allen Compose-Profilen enthalten sein.
Diese Informationen werden wie im folgenden Code dargestellt gespeichert. Die Konfiguration für den Dienst und seine voreingestellte Aktion wird nur gespeichert, wenn Sie die voreingestellte Aktion ändern.
{
"profiles": {
"test1": {
"commandName": "DockerCompose",
"composeProfile": {
"includes": [
"web1"
]
},
"commandVersion": "1.0"
}
}
}
Sie können auch die Aktion von webapplication1 in Start ändern, ohnedebuggen zu müssen. In den Einstellungen von launchSettings.json sieht der Code dann wie folgt aus:
{
"profiles": {
"test1": {
"commandName": "DockerCompose",
"composeProfile": {
"includes": [
"web1"
],
"serviceActions": {
"webapplication1": "StartWithoutDebugging"
}
},
"commandVersion": "1.0"
}
}
}
Eigenschaften
Hier folgt eine Beschreibung der einzelnen Eigenschaften in launchSettings.json:
Eigentum | Beschreibung |
---|---|
commandName | Name des Befehls. Der Standardwert ist „DockerCompose“. |
commandVersion | Versionsnummer zum Verwalten des Schemas des DockerCompose-Startprofils. |
composeProfile | Übergeordnete Eigenschaft, die die Startprofildefinition definiert. Die untergeordneten Eigenschaften sind includes und serviceActions . |
composeProfile - includes | Die Liste der Compose-Profilnamen, aus denen ein Startprofil besteht. |
composeProfile - serviceActions | Listet die ausgewählten Compose-Profile, Dienste und die Startaktion jedes Dienstes auf. |
serviceActions | Listet die ausgewählten Dienste und die Startaktion auf. |
composeLaunchAction | Hiermit wird die Startaktion festgelegt, die beim Drücken von F5 oder STRG+F5 ausgeführt werden soll. Zulässige Werte sind None, LaunchBrowser und LaunchWCFTestClient. |
composeLaunchUrl | Die URL, die beim Starten des Browsers verwendet werden soll. Gültige Ersatztoken sind "{ServiceIPAddress}", "{ServicePort}" und "{Scheme}". Beispiel: {Scheme}://{ServiceIPAddress}:{ServicePort} |
composeLaunchServiceName | Gibt den Dienst an, der zum Ersetzen der Token in composeLaunchUrl verwendet wird. |