Partilhar via


Iniciar um subconjunto de serviços Compose

Se você tiver um aplicativo que consiste em vários serviços e usa o Docker Compose, poderá configurar quais serviços serã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 que são importantes para o seu cenário atual. Você pode criar e selecionar a partir de 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 escolhendo um perfil Docker Compose, que também examina seu arquivo Compose para determinar o grupo de serviços a ser executado.

Para obter informações sobre perfis do Docker Compose, consulte Usando perfis com o Compose.

Pré-requisitos

Gerenciar configurações de inicialização

Considere o seguinte projeto Docker Compose no qual o docker-compose.yml tem cinco serviços e três perfis 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

Há algumas opções para abrir a caixa de diálogo Configurações de inicialização do Docker Compose:

  • No Visual Studio, seleccione Depurar>Gerir Definições de Lançamento do Docker Compose:

    Captura de ecrã do item de menu

    Captura de tela do item de menu Depurar Gerenciar Configurações de Composição

  • Clique com o botão direito do rato no projeto do Visual Studio docker-compose e selecione Gerir configurações de inicialização do Docker Compose

    Captura de tela do item do menu de contexto

    Captura de tela do item do menu de contexto

  • Use o Início Rápido (Ctrl+Q) e procure Docker Compose para encontrar o mesmo comando.

No exemplo abaixo, o perfil web1 Compose é selecionado, o que filtra a lista de Serviços apenas para três dos cinco incluídos nesse perfil:

Observação

A seção Perfis de composição do Docker só será exibida se houver perfis definidos em seus arquivos docker-compose.yml.

O próximo exemplo demonstra como selecionar serviços individuais em vez de filtrar os serviços num perfil do Compose. Aqui, mostramos como seria o diálogo se criasse um novo perfil de inicialização chamado test2, que iniciaria apenas dois dos cinco serviços: webapplication1 com depuração activada e webapplication2 sem depuração. Este perfil de inicialização também inicia um navegador quando o aplicativo é iniciado, abrindo-o na página inicial do webapplication1.

Captura de tela da caixa de diálogo de configurações de inicialização com alguns serviços desmarcados

E essas informações são salvas em launchSettings.json como 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 de composição do Docker

Você também pode personalizar ainda mais os comportamentos de inicialização criando perfis de inicialização do Visual Studio que utilizam os perfis Compose.

Para criar outro perfil que faça uso do perfil do Compose, selecione Usar perfis do Docker Compose e escolha web1. Agora, o perfil de lançamento inclui três serviços: webapplication1 (que pertence aos perfis web e web1 Compose), external1e external2. Por padrão, os serviços sem código-fonte, como external1 e external2, têm como ação predefinida Iniciar sem depurar. Aplicativos .NET com código-fonte padrão para Iniciar a depuração.

Importante

Se um serviço não especificar um perfil Compor, ele será incluído em todos os perfis Compor implicitamente.

Captura de tela da caixa de diálogo de configurações de inicialização com outro perfil criado

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 depurar. As configurações no launchSettings.json então 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
nome do comando Nome do comando. O padrão por predefinição é "DockerCompose"
commandVersion Número de versão usado para gerenciar o esquema do perfil de inicialização do DockerCompose.
composeProfile Propriedade pai que define a definição de perfil de inicialização. Suas propriedades filhas são includes e serviceActions
"composeProfile" - inclui Lista dos nomes de perfil Compose que formam um perfil de lançamento.
comporPerfil - açõesDeServiço Lista os perfis de composição selecionados, os serviços e a ação de inicialização de cada serviço
serviceActions Lista os serviços selecionados e a ação de inicialização.
comporAcaoDeLancamento Especifica a ação de inicialização a ser executada em F5 ou Ctrl+F5. Os valores permitidos são None, LaunchBrowser e LaunchWCFTestClient.
criarUrlDeLançamento O URL a ser usado 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 em composeLaunchUrl.