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, Browser Launch URLad esempio . Si avrà anche la possibilità di 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 Manage Docker Compose Launch Impostazioni:In Visual Studio choose Debug Manage Docker Compose Launch Impostazioni:In Visual Studio choose Debug>Manage Docker Compose Launch Impostazioni:

    Screenshot della voce di menu Debug Manage Compose Impostazioni

    Screenshot della voce di menu Debug Manage Compose Impostazioni

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

    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 web1 profilo Compose, che filtra l'elenco Servizi solo per i tre inclusi in tale profilo:

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. In questo caso 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 il 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 verranno salvate nel lancio Impostazioni.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 Usa profili Docker Compose e scegliere web1. Il profilo di avvio include ora tre servizi, webapplication1 che appartengono sia ai webweb1 profili external1 Compose, sia external2a . Per impostazione predefinita, i servizi senza codice sorgente, external1 ad esempio e external2 hanno l'azione predefinita Avvia senza eseguire il debug. Per impostazione predefinita, le applicazioni .NET con codice sorgente verranno avviate il debug.

Importante

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

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

Queste informazioni verranno 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 nell'avvio Impostazioni.json quindi hanno un aspetto simile al codice seguente:

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

Proprietà

Ecco una descrizione di ogni proprietà nel lancio Impostazioni.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.
composeProfile Proprietà padre che definisce la definizione del profilo di avvio. Le proprietà figlio sono includes e serviceActions
composeProfile - include Elenco dei nomi dei profili Compose che costituiscono un profilo di avvio.
composeProfile - serviceActions Elenca i profili, i servizi e l'azione di avvio selezionati di ogni 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.