Compartir vía


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 dinámicamente solo los servicios que importan en su 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. También tiene la opción de elegir individualmente cada servicio o elegir un perfil de Docker Compose, que también examina el archivo 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

Administrar la configuración de inicio

Tenga en cuenta el siguiente proyecto de Docker Compose en el que el 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 de Visual Studio docker-compose y seleccione Administrar 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 de 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 seleccionados

Y esta información se guarda en launchSettings.json 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 que use un perfil de Docker Compose

También puede personalizar aún más los comportamientos de inicio mediante la creación de perfiles de inicio de Visual Studio que usen los perfiles de Compose.

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

Importante

Si un servicio no especifica un perfil de Compose, se incluye 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 guarda 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, a continuación, se parece al código siguiente:

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

Propiedades

A continuación, se presenta una descripción de cada propiedad en launchSettings.json:

Propiedad Descripción
commandName Nombre del comando. El valor predeterminado es "DockerCompose"
commandVersion Número de versión usado para administrar el esquema del perfil de inicio de DockerCompose.
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 en F5 o Ctrl+F5. Los valores permitidos son None, LaunchBrowser y LaunchWCFTestClient.
composeLaunchUrl Dirección URL que se va a usar al iniciar el explorador. Los tokens de reemplazo válidos son "{ServiceIPAddress}", "{ServicePort}" y "{Scheme}". Por ejemplo: {Scheme}://{ServiceIPAddress}:{ServicePort}
composeLaunchServiceName Especifica el servicio usado para reemplazar los tokens en composeLaunchUrl.