Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Se você tiver um aplicativo que consiste em vários serviços e usa o Docker Compose, poderá configurar quais serviços são executados e depurados criando ou editando um perfil de inicialização existente nas configurações de inicialização do Docker Compose. Os perfis de inicialização permitem que você execute dinamicamente apenas os serviços importantes para o cenário atual. Você pode criar e selecionar entre perfis de inicialização para personalizar sua experiência de depuração e definir ações de inicialização específicas, como Browser Launch URL
. Você também tem a opção de escolher cada serviço individualmente ou escolher um perfil do Docker Compose, que também examina o arquivo Compose para determinar o grupo de serviços a serem executados.
Para obter informações sobre perfis do Docker Compose, consulte Usando perfis com o Compose.
Pré-requisitos
- Visual Studio 2019 versão 16.10 ou posterior
- Uma solução .NET com orquestração de contêiner com o Docker Compose
- Visual Studio 2022 ou Visual Studio 2019 versão 16.10 ou posterior
- Uma solução .NET com orquestração de contêiner com o Docker Compose
Gerenciar configurações de inicialização
Considere o seguinte projeto do Docker Compose no qual o docker-compose.yml tem cinco serviços e três perfis de Redação (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
Há algumas opções para abrir a caixa de diálogo configurações de inicialização do Docker Compose:
No Visual Studio, escolha Depurar>Gerenciar Configurações de Inicialização do Docker Compose:
Clique com o botão direito do mouse no projeto
docker-compose
do Visual Studio e selecione Gerenciar Configurações de Inicialização do Docker ComposeUse o Início Rápido (Ctrl+Q) e pesquise do Docker Compose para encontrar o mesmo comando.
No exemplo a seguir, o perfil do Compose web1
é selecionado, que filtra a lista de Serviços para apenas três de cinco incluídos nesse perfil:
Nota
A seção Perfis do Docker Compose só será exibida se houver perfis definidos em seus arquivos de docker-compose.yml.
O exemplo a seguir demonstra a seleção entre serviços individuais em vez de filtrar para os serviços em um perfil do Compose. Aqui, mostraremos como seria a caixa de diálogo se você criasse um novo perfil de inicialização chamado test2
que inicia apenas dois dos cinco serviços, webapplication1
com depuração e webapplication2
sem depuração. Esse perfil de inicialização também inicia um navegador quando o aplicativo é iniciado e o abre na home page do webapplication1
.
E essas informações são salvas em launchSettings.json conforme mostrado abaixo
{
"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}"
}
}
}
Criar um perfil de inicialização que usa um perfil do Docker Compose
Você também pode personalizar ainda mais os comportamentos de inicialização criando perfis de inicialização do Visual Studio que usam os perfis do Compose.
Para criar outro perfil que use o perfil do Compose, selecione Usar perfis do Docker Compose e escolha web1
. Agora, o perfil de inicialização inclui três serviços: webapplication1
(que pertence a perfis web
e web1
Compose), external1
e external2
. Por padrão, os serviços sem código-fonte, como external1
e external2
, têm como ação padrão iniciar sem depurar. Aplicativos .NET com código-fonte são padronizados para Iniciar depuração.
Importante
Se um serviço não especificar um perfil do Compose, ele será incluído implicitamente em todos os perfis do Compose.
Essas informações são salvas conforme mostrado no código a seguir. A configuração do serviço e sua ação padrão não são salvas, a menos que você altere a ação padrão.
{
"profiles": {
"test1": {
"commandName": "DockerCompose",
"composeProfile": {
"includes": [
"web1"
]
},
"commandVersion": "1.0"
}
}
}
Você também pode alterar a ação de webapplication1 para Iniciar sem depuração. As configurações em launchSettings.json, em seguida, se parecem com o seguinte código:
{
"profiles": {
"test1": {
"commandName": "DockerCompose",
"composeProfile": {
"includes": [
"web1"
],
"serviceActions": {
"webapplication1": "StartWithoutDebugging"
}
},
"commandVersion": "1.0"
}
}
}
Propriedades
Aqui está uma descrição de cada propriedade no launchSettings.json:
Propriedade | Descrição |
---|---|
commandName | Nome do comando. O padrão é "DockerCompose" |
commandVersion | Número de versão usado para gerenciar o esquema do perfil de inicialização do DockerCompose. |
composeProfile | Propriedade pai que determina a definição do perfil de inicialização. Suas propriedades filho são includes e serviceActions |
composeProfile – includes | Lista dos nomes de perfil do Compose que compõem um perfil de inicialização. |
composeProfile – serviceActions | Lista os perfis do Compose, os serviços e a ação de inicialização de cada serviço selecionado |
serviceActions | Lista os serviços selecionados e a ação de inicialização. |
composeLaunchAction | Especifica a ação de inicialização a ser executada em F5 ou Ctrl+F5. Os valores permitidos são None, LaunchBrowser e LaunchWCFTestClient. |
composeLaunchUrl | A URL a ser usada ao iniciar o navegador. Os tokens de substituição válidos são "{ServiceIPAddress}", "{ServicePort}" e "{Scheme}". Por exemplo: {Scheme}://{ServiceIPAddress}:{ServicePort} |
composeLaunchServiceName | Especifica o serviço usado para substituir os tokens no composeLaunchUrl. |