Freigeben über


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 URLfestzulegen. 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

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:

    Screenshot des Menüelements

    Screenshot des Menüelements

  • Klicken Sie mit der rechten Maustaste auf das Visual Studio-docker-compose-Projekt und wählen Sie Docker Compose-Startkonfiguration verwalten

    Screenshot des Kontextmenüelements

    Screenshot des Kontextmenüelements

  • Verwenden 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.

Screenshot: Dialogfeld „Starteinstellungen“ mit einigen deaktivierten Diensten

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), external1und 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.

Screenshot: Dialogfeld „Starteinstellungen“ mit einem weiteren erstellten Profil

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.