Inicio de un subconjunto de servicios de Compose

Si tiene una aplicación que consta de varios servicios y usa Docker Compose, puede configurar qué servicios se ejecutan y depuran mediante la creación o edición de un perfil de inicio existente en la configuración de inicio de Docker Compose. Los perfiles de inicio permiten ejecutar de forma dinámica solo los servicios relevantes para el escenario actual. Puede crear y seleccionar perfiles de inicio para personalizar la experiencia de depuración y establecer acciones de inicio específicas, como Browser Launch URL. Además, tendrá la opción de elegir cada servicio individualmente o elegir un perfil de Docker Compose, que también examina el archivo de Compose para determinar el grupo de servicios que se va a ejecutar.

Para obtener información sobre los perfiles de inicio de Docker Compose, vea Uso de perfiles con Compose.

Prerrequisitos

Administración de la configuración de inicio

Considere el siguiente proyecto de Docker Compose en el que docker-compose.yml tiene cinco servicios y tres perfiles de Compose (web, web1 y 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

Hay algunas opciones para abrir el cuadro de diálogo de configuración de inicio de Docker Compose:

  • En Visual Studio, elija Depurar>Administrar la configuración de inicio de Docker Compose:

    Captura de pantalla del elemento de menú Administrar la configuración de Compose de Depurar

    Captura de pantalla del elemento de menú Administrar la configuración de Compose de Depurar

  • Haga clic con el botón derecho en el proyecto docker-compose de Visual Studio y seleccione Administrar la configuración de inicio de Docker Compose.

    Captura de pantalla del elemento de menú contextual

    Captura de pantalla del elemento de menú contextual

  • Use el inicio rápido (Ctrl+Q) y busque Docker Compose para encontrar el mismo comando.

En el ejemplo siguiente, se selecciona el perfil de Compose web1, que filtra la lista Servicios solo a tres de los cinco incluidos en ese perfil:

Nota

La sección Perfiles de Docker Compose solo aparece si hay perfiles definidos en los archivos docker-compose.yml.

En el ejemplo siguiente se muestra cómo seleccionar entre servicios individuales en lugar de filtrar por los servicios de un perfil de Compose. Aquí se muestra el aspecto del cuadro de diálogo si ha creado un perfil de inicio denominado test2 que solo inicia dos de los cinco servicios, webapplication1 con depuración y webapplication2 sin depuración. Este perfil de inicio también inicia un explorador cuando se inicia la aplicación y lo abre en la página principal de webapplication1.

Captura de pantalla del cuadro de diálogo de configuración de inicio con algunos servicios no seleccionados

Y esta información se guardará en launchSettings.js como se muestra a continuación.

{
    "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}"
      }
   }
}

Creación de un perfil de inicio en el que se usa un perfil de Docker Compose

También puede personalizar aún más los comportamientos de inicio si crea perfiles de inicio de Visual Studio en los que se usan los perfiles de Compose.

Para crear otro perfil que use el de Compose, seleccione Use Docker Compose profiles (Usar perfiles de Docker Compose) y elija web1. Ahora, el perfil de inicio incluye tres servicios: webapplication1 (que pertenece a los perfiles de Compose web y web1), external1 y external2. De manera predeterminada, los servicios sin código fuente como external1 y external2 tienen la acción predeterminada Iniciar sin depurar. Las aplicaciones de .NET con código fuente tendrán como valor predeterminado Iniciar depuración.

Importante

Si un servicio no especifica un perfil de Compose, se incluirá implícitamente en todos los perfiles de Compose.

Captura de pantalla del cuadro de diálogo de configuración de inicio con otro perfil creado

Esta información se guardará como se muestra en el código siguiente. La configuración del servicio y su acción predeterminada no se guardan a menos que cambie la acción predeterminada.

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

También puede cambiar la acción de webapplication1 a Iniciar sin depurar. La configuración de launchSettings.json es similar al código siguiente:

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

Propiedades

Esta es una descripción de cada propiedad de launchSettings.json:

Propiedad Descripción
commandName Nombre del comando. Valores predeterminados de "DockerCompose"
commandVersion Número de versión que se usa para administrar el esquema del perfil de inicio de Docker Compose.
composeProfile Propiedad primaria que define la definición del perfil de inicio. Sus propiedades secundarias son includes y serviceActions
composeProfile: includes Lista de los nombres de perfil de Compose que componen un perfil de inicio.
composeProfile: serviceActions Enumera los perfiles de Compose seleccionados, los servicios y la acción de inicio de cada servicio.
serviceActions Enumera los servicios seleccionados y la acción de inicio.
composeLaunchAction Especifica la acción de inicio que se va a realizar al presionar F5 o Ctrl+F5. Los valores permitidos son None, LaunchBrowser y LaunchWCFTestClient.
composeLaunchUrl Esta dirección URL se usa al iniciar el explorador. Los tokens de reemplazo válidos son "{ServiceIPAddress}", "{ServicePort}" y "{Scheme}". Por ejemplo: {Scheme}://{ServiceIPAddress}:{ServicePort}
composeLaunchServiceName Especifica el servicio utilizado para reemplazar los tokens en composeLaunchUrl.