Spuštění podmnožina 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 vytvořit a vybrat z profilů spuštění, abyste přizpůsobili prostředí ladění a nastavili konkrétní spouštěcí akce, jako Browser Launch URLje . Budete mít také možnost zvolit každou službu jednotlivě, nebo výběrem profilu 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 najdete v tématu 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:

  • V sadě Visual Studio zvolte >spustit Nastavení Ladění správy docker Compose:

    Snímek obrazovky s položkou nabídky Spravovat psaní Nastavení ladění

    Snímek obrazovky s položkou nabídky Spravovat psaní Nastavení ladění

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

    Snímek obrazovky s položkou místní nabídky

    Snímek obrazovky s položkou místní nabídky

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

V následujícím příkladu web1 je vybraný profil Compose, který filtruje seznam Služeb pouze na tři z pěti zahrnutých v tomto profilu:

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

Poznámka:

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

Další příklad ukazuje výběr mezi jednotlivými službami místo filtrování na služby v profilu Compose. Tady si ukážeme, jak by dialogové okno vypadalo, pokud jste vytvořili nový spouštěcí profil s názvem test2 , který spustí jenom dva z pěti služeb s webapplication1 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 webapplication1aplikace .

Snímek obrazovky s dialogovým oknem pro spuštění nastavení se zrušeným výběrem některých služeb

A tyto informace se uloží do spuštění Nastavení.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ů sady Visual Studio, které využívají profily pro psaní zpráv.

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 obou web a web1 profilů Compose) external1 a external2. Ve výchozím nastavení mají služby bez zdrojového kódu external1 jako výchozí external2 akci Spustit bez ladění. Aplikace .NET se zdrojovým kódem ve výchozím nastavení spustí ladění.

Důležité

Pokud služba nezadá profil Compose, bude zahrnuta do všech profilů compose implicitně.

Snímek obrazovky s dialogovým oknem pro spuštění nastavení s vytvořeným jiný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 webové aplikace1 na Spustit bez ladění. Nastavení při spuštění Nastavení.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í při spuštění Nastavení.json:

Vlastnost Popis
Commandname Název příkazu Výchozí hodnota je DockerCompose.
commandVersion Číslo verze použité ke správě schématu spouštěcího profilu DockerCompose.
composeProfile 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 profilů, služeb a spouštěcí akce jednotlivých služeb.
serviceActions Zobrazí seznam vybraných služeb a akci spuštění.
composeLaunchAction Určuje akci spuštění, která se má provést s klávesou 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.