Sdílet prostřednictvím


Spusťte podmnožinu služeb Compose

Pokud máte aplikaci, která se skládá z více služeb a používá Docker Compose, můžete nakonfigurovat, které služby běží a ladit vytvořením nebo úpravou existujícího spouštěcího profilu v nastavení spuštění Docker Compose. Spouštěcí profily umožňují dynamicky spouštět pouze služby, které jsou pro váš aktuální scénář důležité. Můžete vytvářet a vybírat profily spuštění, abyste přizpůsobili prostředí pro ladění a nastavili konkrétní spouštěcí akce, jako je Browser Launch URL. Máte také možnost zvolit jednotlivé služby nebo zvolit profil Docker Compose, který se také podívá na váš soubor Compose a určí skupinu služeb, které se mají spustit.

Informace o profilech Docker Compose viz Použití profilů s Compose.

Požadavky

Správa nastavení spuštění

Zvažte následující projekt Docker Compose, ve kterém má docker-compose.yml pět služeb a tři profily Compose (web, web1 a 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

Existuje několik možností, jak otevřít dialogové okno nastavení spuštění Docker Compose:

  • Ve Visual Studiu zvolte Ladění>Spravovat nastavení spuštění Docker Compose:

    snímek obrazovky s položkou nabídky Nastavení komponování správy ladění

    snímek obrazovky s položkou nabídky Spravovat nastavení složení při ladění

  • Klikněte pravým tlačítkem na projekt docker-compose sady Visual Studio a vyberte Spravovat nastavení spuštění Docker Compose

    Snímek obrazovky položky místní nabídky

    Snímek obrazovky položky v místní nabídce

  • Použijte panel Snadné spuštění (Ctrl+Q) a vyhledejte Docker Compose a najděte stejný příkaz.

V níže uvedeném příkladu je vybrán profil web1 Compose, který filtruje seznam Services tak, aby obsahoval pouze tři z pěti služeb zahrnutých v tomto profilu.

"Snímek obrazovky s dialogovým oknem pro spuštění nastavení"

Poznámka

Oddíl profilů v Docker Compose se zobrazí pouze v případě, že jsou v souborech docker-compose.yml profily definované.

Další příklad ukazuje výběr mezi jednotlivými službami místo filtrování na služby v profilu Compose. Tady ukážeme, jak by dialogové okno vypadalo, pokud byste vytvořili nový spouštěcí profil s názvem test2, který spustí pouze dvě z pěti služeb, a to webapplication1 s laděním a webapplication2 bez ladění. Tento spouštěcí profil také spustí prohlížeč při spuštění aplikace a otevře ji na domovské stránce webapplication1.

snímek obrazovky s dialogovým oknem pro spuštění nastavení s nevybranými službami

Tyto informace se ukládají do launchSettings.json, jak je znázorněno níže.

{
    "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}"
      }
   }
}

Vytvoření spouštěcího profilu, který používá profil Docker Compose

Chování při spuštění můžete dále přizpůsobit vytvořením spouštěcích profilů Visual Studio, které využívají Compose profily.

Pokud chcete vytvořit další profil, který používá profil Compose, vyberte Použít profily Docker Compose a zvolte web1. Nyní spouštěcí profil obsahuje tři služby: webapplication1 (které patří do profilů web i web1 Compose), external1a external2. Ve výchozím nastavení mají služby bez zdrojového kódu, například external1 a external2 výchozí akci Spustit bez ladění. Aplikace .NET ve výchozím nastavení zdrojového kódu přejdou na Spustit ladění.

Důležitý

Pokud služba neurčí profil Compose, je zahrnuta do všech profilů Compose implicitně.

snímek obrazovky s dialogovým oknem pro spuštění nastavení s jiným vytvořeným profilem

Tyto informace se uloží, jak je znázorněno v následujícím kódu. Konfigurace služby a její výchozí akce se neuloží, pokud nezměníte výchozí akci.

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

Můžete také změnit akci webapplication1 na Spustit bez ladění. Nastavení v launchSettings.json pak vypadá jako následující kód:

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

Vlastnosti

Tady je popis jednotlivých vlastností v launchSettings.json:

Vlastnost Popis
název příkazu Název příkazu Výchozí hodnota je „DockerCompose“.
verze příkazu Číslo verze použité ke správě schématu spouštěcího profilu DockerCompose.
vytvořitProfil Nadřazená vlastnost, která definuje definici spouštěcího profilu. Jeho podřízené vlastnosti jsou includes a serviceActions
composeProfile – zahrnuje Seznam názvů profilů Compose, které tvoří spouštěcí profil.
composeProfile – serviceActions Zobrazí seznam vybraných Compose profilů, služeb a akce spuštění jednotlivých služeb.
servisní akce Zobrazí seznam vybraných služeb a akci spuštění.
composeLaunchAction Určuje akci spuštění, která se má provést na F5 nebo Ctrl+F5. Povolené hodnoty jsou None, LaunchBrowser a LaunchWCFTestClient.
composeLaunchUrl Adresa URL, která se má použít při spuštění prohlížeče. Platné náhradní tokeny jsou {ServiceIPAddress}, {ServicePort} a {Scheme}. Příklad: {Scheme}://{ServiceIPAddress}:{ServicePort}
composeLaunchServiceName Určuje službu použitou k nahrazení tokenů v souboru composeLaunchUrl.