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
- Visual Studio 2019 versione 16.10 o successiva
- Soluzione .NET con orchestrazione di contenitori con Docker Compose
- Visual Studio 2022 o Visual Studio 2019 versione 16.10 o successiva
- Soluzione .NET con orchestrazione di contenitori con Docker Compose
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:
Fare clic con il pulsante destro del mouse sul progetto di Visual Studio
docker-compose
e selezionare Gestisci impostazioni di avvio di Docker ComposeUsare 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
.
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), external1
e 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.
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. |