Condividi tramite


Avvia 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 dei 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 le impostazioni di avvio di Docker Compose:

    screenshot della voce di menu Debug Gestisci impostazioni composizione

    screenshot della voce di menu Gestisci impostazioni di composizione in modalità debug

  • 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 di menu di scelta rapida

    Screenshot della voce di menu di scelta rapida

  • 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 di Services in modo da includere solo i tre su cinque di tale profilo.

"Screenshot della finestra di dialogo delle impostazioni di avvio"

Nota

La sezione Profili Docker Compose è visibile solo se nei file di docker-compose.yml sono definiti dei profili.

Nell'esempio seguente viene mostrato come scegliere 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 ora include tre servizi: webapplication1 (che appartiene sia al profilo web sia al profilo web1 di 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 Inizia 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.
creaProfilo Proprietà padre che definisce la definizione del profilo di avvio. Le proprietà figlie sono includes e serviceActions
composeProfile - comprende Elenco dei nomi dei profili Compose che costituiscono un profilo di avvio.
composeProfile - azioni di servizio Elenca i profili Compose, i servizi Compose 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}
composeLaunchServiceName Specifica il servizio usato per sostituire i token in composeLaunchUrl.