Dela via


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

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:

    Skärmbild av menyalternativet Debug Manage Compose Settings (Hantera skrivinställningar)

    Skärmbild av menyalternativet Debug Manage Compose Settings (Hantera skrivinställningar)

  • Högerklicka på Visual Studio docker-compose-projektet och välj Hantera Startinställningar för Docker Compose

    Skärmbild av snabbmenyobjektet

    Skärmbild av snabbmenyobjektet

  • Anvä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.

Skärmbild av dialogrutan Starta inställningar med vissa tjänster avmarkerade

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

Skärmbild av startinställningsdialogen med en annan profil skapad

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.