Partage via


Lancer un sous-ensemble de vos services Compose

Si vous avez une application composée de plusieurs services et qui utilise Docker Compose, vous pouvez configurer les services qui s’exécutent et déboguent en créant ou en modifiant un profil de lancement existant dans les paramètres de lancement de Docker Compose. Les profils de lancement vous permettent d’exécuter dynamiquement uniquement les services qui comptent pour votre scénario actuel. Vous pouvez créer et sélectionner des profils de lancement afin de personnaliser votre expérience de débogage et définir des actions de lancement spécifiques telles que Browser Launch URL. Vous avez également la possibilité de choisir chaque service individuellement ou de choisir un profil Docker Compose, qui examine également votre fichier Compose pour déterminer le groupe de services à exécuter.

Pour plus d’informations sur les profils Docker Compose, consultez Utilisation des profils avec Compose.

Prérequis

Gérer les paramètres de lancement

Considérez le projet Docker Compose suivant dans lequel le fichier docker-compose.yml contient cinq services et trois profils Compose (web, web1 et 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

Il existe quelques options pour ouvrir la boîte de dialogue des paramètres de lancement de Docker Compose :

  • Dans Visual Studio, choisissez Déboguer>Gérer les paramètres de lancement de Docker Compose :

    Capture d’écran de l’élément de menu Déboguer, Gérer les paramètres de Compose

    Capture d’écran de l’élément de menu Déboguer, Gérer les paramètres de Compose

  • Cliquez avec le bouton droit de la souris sur le projet Visual Studio docker-compose et sélectionnez Gérer les paramètres de lancement de Docker Compose

    Capture d’écran de l’élément de menu contextuel

    Capture d’écran de l’élément de menu contextuel

  • Utilisez le lancement rapide (Ctrl+Q) et recherchez Docker Compose pour trouver la même commande.

Dans l’exemple ci-dessous, le profil Compose web1 est sélectionné, ce qui filtre la liste Services uniquement sur les trois services sur cinq inclus dans ce profil :

« Capture d’écran de la boîte de dialogue des paramètres de lancement »

Notes

La section des profils Docker Compose s’affiche uniquement s’il existe des profils définis dans vos fichiers docker-compose.yml.

L’exemple suivant illustre la sélection de services individuels au lieu de filtrer les services dans un profil Compose. Ici, vous pouvez voir à quoi ressemblerait la boîte de dialogue si vous créiez un nouveau profil de lancement nommé test2 qui ne démarre que deux des cinq services, webapplication1 avec débogage et webapplication2 sans débogage. Ce profil de lancement lance également un navigateur au démarrage de l’application et l’ouvre sur la page d’accueil de webapplication1.

Capture d’écran de la boîte de dialogue des paramètres de lancement avec certains services désélectionnés

Ces informations seront enregistrées dans launchSettings.json, comme indiqué ci-dessous

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

Créer un profil de lancement qui utilise un profil Docker Compose

Vous pouvez également personnaliser davantage les comportements de lancement en créant des profils de lancement Visual Studio qui utilisent les profils Compose.

Pour créer un autre profil qui utilise le profil Compose, sélectionnez Utiliser les profils Docker Compose, puis choisissez web1. Le profil de lancement comprend désormais trois services : webapplication1 (qui appartient aux profils Compose web et web1), external1 et external2. Par défaut, les services sans code source tels que external1 et external2 ont l’action par défaut Démarrer sans débogage. Les applications .NET avec code source ont l’action par défaut Démarrer le débogage.

Important

Si un service ne spécifie pas de profil Compose, il sera implicitement inclus dans tous les profils Compose.

Capture d’écran de la boîte de dialogue des paramètres de lancement avec un autre profil créé

Ces informations seront enregistrées comme indiqué dans le code suivant. La configuration du service et son action par défaut ne sont pas enregistrées, sauf si vous modifiez l’action par défaut.

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

Vous pouvez également modifier l’action de webapplication1 en Démarrer sans débogage. Les paramètres de launchSettings.json ressemblent au code suivant :

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

Propriétés

Vous trouverez ci-dessous une description de chaque propriété dans launchSettings.json :

Propriété Description
commandName Nom de la commande. Par défaut, « DockerCompose »
commandVersion Numéro de version utilisé pour gérer le schéma du profil de lancement DockerCompose.
composeProfile Propriété parent qui définit le profil de lancement. Ses propriétés enfants sont includes et serviceActions
composeProfile – inclut Liste des noms des profils Compose qui composent un profil de lancement.
composeProfile – serviceActions Répertorie les profils Compose sélectionnés, les services et l’action de lancement de chaque service
serviceActions Répertorie les services sélectionnés et l’action de lancement.
composeLaunchAction Spécifie l’action de lancement à effectuer avec F5 ou Ctrl+F5. Les valeurs autorisées sont None, LaunchBrowser et LaunchWCFTestClient.
composeLaunchUrl URL à utiliser au lancement du navigateur. Les jetons de remplacement valides sont « {ServiceIPAddress} », « {ServicePort} » et « {Scheme} ». Par exemple : {Scheme}://{ServiceIPAddress}:{ServicePort}
composeLaunchServiceName Spécifie le service utilisé pour remplacer les jetons dans composeLaunchUrl.