Condividi tramite


Avviare un subset di servizi Compose

Se si dispone di un'applicazione costituita da più servizi e si usa Docker Compose, è possibile configurare i servizi eseguiti ed eseguirne il debug creando o modificando un profilo di avvio esistente nelle impostazioni di avvio di Docker Compose. I profili di avvio consentono di eseguire in modo dinamico solo i servizi importanti per lo scenario corrente. È possibile creare e selezionare i profili di avvio per personalizzare l'esperienza di debug e impostare azioni di avvio specifiche, ad esempio Browser Launch URL. È anche possibile scegliere ogni servizio singolarmente o scegliendo un profilo Docker Compose, che esamina anche il file Compose per determinare il gruppo di servizi da eseguire.

Per informazioni sui profili Docker Compose, vedere Uso di profili con Compose.

Prerequisiti

Gestire le impostazioni di avvio

Si consideri il progetto Docker Compose seguente in cui il docker-compose.yml ha cinque servizi e tre profili Compose (Web, Web1 e 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

Sono disponibili alcune opzioni per aprire la finestra di dialogo delle impostazioni di avvio di Docker Compose:

  • In Visual Studio scegliere Debug>Gestisci impostazioni di avvio di Docker Compose:

    screenshot della voce di menu Debug Gestisci impostazioni composizione

    screenshot della voce di menu Debug Gestisci impostazioni composizione

  • Fare clic con il pulsante destro del mouse sul progetto di Visual Studio docker-compose e selezionare Gestisci impostazioni di avvio di Docker Compose

    Screenshot della voce del menu contestuale

    Screenshot della voce del menu contestuale

  • Usare Avvio rapido (CTRL+Q) e cercare Docker Compose per trovare lo stesso comando.

Nell'esempio seguente, viene selezionato il profilo web1 Compose, che filtra l'elenco dei servizi per mostrare solo tre dei cinque inclusi in tale profilo.

"Screenshot della finestra di dialogo delle impostazioni di avvio"

Nota

La sezione Profili Docker Compose viene visualizzata solo se sono presenti profili definiti nei file di docker-compose.yml.

Nell'esempio seguente viene illustrata la selezione tra singoli servizi invece di filtrare i servizi in un profilo Compose. Qui viene illustrato come verrà visualizzata la finestra di dialogo se è stato creato un nuovo profilo di avvio denominato test2 che avvia solo due dei cinque servizi, webapplication1 con debug e webapplication2 senza eseguire il debug. Questo profilo di avvio avvia anche un browser all'avvio dell'applicazione e lo apre alla home page di webapplication1.

screenshot della finestra di dialogo delle impostazioni di avvio con alcuni servizi deselezionati

E queste informazioni vengono salvate in launchSettings.json come illustrato di seguito

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

Creare un profilo di avvio che usa un profilo Docker Compose

È anche possibile personalizzare ulteriormente i comportamenti di avvio creando profili di avvio di Visual Studio che usano i profili Compose.

Per creare un altro profilo che usa il profilo Compose, selezionare Usare i profili Docker Compose e scegliere web1. Il profilo di avvio include ora tre servizi: webapplication1 (che appartiene sia ai profili di web che a web1 Compose), external1e external2. Per impostazione predefinita, i servizi senza codice sorgente, ad esempio external1 e external2 hanno l'azione predefinita di Avvia senza eseguire il debug. Per impostazione predefinita, le applicazioni .NET con codice sorgente Avviare il debug.

Importante

Se un servizio non specifica un profilo Compose, viene incluso in tutti i profili Compose in modo implicito.

Schermata della finestra di dialogo delle impostazioni di avvio con un altro profilo creato

Queste informazioni vengono salvate come illustrato nel codice seguente. La configurazione per il servizio e l'azione predefinita non vengono salvate a meno che non si modifichi l'azione predefinita.

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

È anche possibile modificare l'azione di webapplication1 in Avvia senza eseguire il debug. Le impostazioni in launchSettings.json quindi sono simili al codice seguente:

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

Proprietà

Ecco una descrizione di ogni proprietà nel launchSettings.json:

Proprietà Descrizione
commandName Nome del comando. Il valore predefinito è "DockerCompose"
commandVersion Numero di versione usato per gestire lo schema del profilo di avvio DockerCompose.
comporreProfilo Proprietà padre che definisce la definizione del profilo di avvio. Le sotto-proprietà sono includes e serviceActions
composeProfile - include Elenco dei nomi dei profili Compose che costituiscono un profilo di lancio.
"componiProfilo - azioniDiServizio" Elenca i profili Compose selezionati, i servizi e l'azione di avvio di ciascun servizio
serviceActions Elenca i servizi selezionati e l'azione di avvio.
composeLaunchAction Specifica l'azione di avvio da eseguire su F5 o CTRL+F5. I valori consentiti sono None, LaunchBrowser e LaunchWCFTestClient.
composeLaunchUrl URL da usare durante l'avvio del browser. I token di sostituzione validi sono "{ServiceIPAddress}", "{ServicePort}" e "{Scheme}". Ad esempio: {Scheme}://{ServiceIPAddress}:{ServicePort}
nomeServizioAvvioCompose Specifica il servizio usato per sostituire i token in composeLaunchUrl.