Starten einer 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. Dazu erstellen Sie ein Startprofil in den Docker Compose-Starteinstellungen oder bearbeiten ein bereits vorhandenes Profil. Mit Startprofilen können Sie nur die Dienste dynamisch ausführen, die für Ihr aktuelles Szenario von Bedeutung sind. Sie können Startprofile erstellen und auswählen, um Ihre Debuggingfunktionen anzupassen und bestimmte Startaktionen wie Browser Launch URL festzulegen. Sie haben auch die Möglichkeit, entweder jeden Dienst einzeln auszuwählen oder ein Docker Compose-Profil zu wählen, das auch ihre Compose-Datei untersucht, um die Gruppe der auszuführenden Dienste zu ermitteln.

Informationen zu Docker Compose-Profilen finden Sie unter Verwenden von Profilen mit Compose.

Voraussetzungen

Verwalten von Starteinstellungen

Sehen Sie sich das folgende Docker Compose-Projekt an, bei dem docker-compose.yml fünf Dienste und drei Compose-Profile (web, web1 und web2) umfasst.

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 mehrere Möglichkeiten, das Dialogfeld für Docker Compose-Starteinstellungen zu öffnen:

  • Wählen Sie in Visual Studio Debuggen>Docker Compose-Starteinstellungen verwalten aus:

    Screenshot des Menüelements zum Verwalten von Compose-Einstellungen

    Screenshot des Menüelements zum Verwalten von Compose-Einstellungen

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

    Screenshot des Kontextmenüelements

    Screenshot des Kontextmenüelements

  • Verwenden Sie den Schnellstart (STRG+Q), und suchen Sie nach Docker Compose, um diesen Befehl zu finden.

Im folgenden Beispiel ist das Compose-Profil web1 ausgewählt, das die Liste Dienste auf lediglich drei der fünf in diesem Profil enthaltenen Dienste filtert:

Screenshot des Dialogfelds für Starteinstellungen

Hinweis

Der Abschnitt mit Docker Compose-Profilen wird nur angezeigt, wenn in Ihren Docker-Compose.yml-Dateien Profile definiert sind.

Im nächsten Beispiel wird gezeigt, wie Sie einzelne Dienste auswählen, anstatt in einem Compose-Profil nach den Diensten zu filtern. Hier sehen Sie, wie das Dialogfeld aussieht, wenn Sie ein neues Startprofil mit dem Namen test2 erstellen, mit dem nur zwei der fünf Dienste gestartet werden: webapplication1 mit Debuggen und webapplication2 ohne Debuggen. Mit diesem Startprofil wird außerdem beim Anwendungsstart ein Browser gestartet und die Startseite von webapplication1 geöffnet.

Screenshot des Dialogfelds für Starteinstellungen mit einigen deaktivierten Diensten

Diese Informationen werden wie nachfolgend gezeigt 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 auch 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. Das Startprofil enthält nun drei Dienste: webapplication1 (der zu den beiden Compose-Profilen web und web1 gehört), external1 und external2. Standardmäßig weisen die Dienste ohne Quellcode wie external1 und external2 die Standardaktion Ohne Debuggen starten auf. .NET-Anwendungen mit Quellcode weisen standardmäßig die Aktion Debuggen starten auf.

Wichtig

Wenn ein Dienst kein Compose-Profil angibt, wird er implizit in alle Compose-Profile eingeschlossen.

Screenshot des Dialogfelds für Starteinstellungen mit einem weiteren erstellten Profil

Diese Informationen werden wie im folgenden Code gespeichert. Die Konfiguration für den Dienst und die zugehörige Standardaktion werden nur gespeichert, wenn Sie die Standardaktion ändern.

{
  "profiles": {
    "test1": {
      "commandName": "DockerCompose",
      "composeProfile": {
         "includes": [
            "web1"
         ]
      },
      "commandVersion": "1.0"
    }
  }
}

Sie können auch die Aktion von „webapplication1“ in Ohne Debuggen starten ändern. Die Einstellungen in launchSettings.json entsprechen dann dem folgenden Code:

{
  "profiles": {
    "test1": {
        "commandName": "DockerCompose",
        "composeProfile": {
          "includes": [
              "web1"
              ],
          "serviceActions": {
              "webapplication1": "StartWithoutDebugging"
          }
        },
    "commandVersion": "1.0"
    }
  }
}

Eigenschaften

Es folgt eine Beschreibung der einzelnen Eigenschaften in launchSettings.json:

Eigenschaft BESCHREIBUNG
commandName Der Name des Befehls. Der Standardwert ist „DockerCompose“.
commandVersion Die Versionsnummer, die zum Verwalten des Schemas des DockerCompose-Startprofils verwendet wird.
composeProfile Die ü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, die Dienste und die Startaktion jedes Diensts auf.
serviceActions Listet die ausgewählten Dienste und die Startaktion auf.
composeLaunchAction Legt die Startaktion fest, 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 Start des Browsers verwendet werden soll. Gültige Ersetzungstoken sind „{ServiceIPAddress}“, „{ServicePort}“ und „{Scheme}“. Beispiel: {Scheme}://{ServiceIPAddress}:{ServicePort}.
composeLaunchServiceName Gibt den Dienst an, der zum Ersetzen der Token in composeLaunchUrl verwendet wird.