Partage via


Lancer un sous-ensemble de services Compose

Si vous disposez d’une application composée de plusieurs services et 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 pour 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 en choisissant 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 de profils avec Compose.

Conditions préalables

Gérer les paramètres de lancement

Considérez le projet Docker Compose suivant dans lequel le docker-compose.yml a 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 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 Capture d’écran de l’élément de menu Déboguer, Gérer les paramètres de Compose

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

  • Cliquez avec le bouton droit sur le projet Visual Studio docker-compose, puis 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 rechercher la même commande.

Dans l’exemple ci-dessous, le profil web1 Compose est sélectionné, ce qui filtre la liste Services pour ne montrer que trois des cinq services inclus dans ce profil :

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

Remarque

La section 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 entre des services individuels au lieu de filtrer les services dans un profil Compose. Ici, nous montrons comment la boîte de dialogue ressemblerait si vous avez créé un nouveau profil de lancement nommé test2 qui démarre uniquement 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 paramètres de lancement avec certains services désélectionnés

Et ces informations sont 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 des profils Docker Compose et choisissez web1. À présent, le profil de lancement comprend trois services : webapplication1 (qui appartient aux profils web et web1 Compose), external1et external2. Par défaut, les services sans code source tels que external1 et external2 ont l’action par défaut de Démarrer sans débogage. Les applications .NET avec du code source ont par défaut l'option de Démarrer le débogage.

Important

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

Capture d’écran du dialogue de paramètres de lancement avec un autre profil créé

Ces informations sont enregistrées comme indiqué dans le code suivant. La configuration du service et de 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 ensuite au code suivant :

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

Propriétés

Voici une description de chaque propriété dans la launchSettings.json:

Propriété Description
commandName Nom de la commande. La valeur par défaut est « DockerCompose »
commandVersion Numéro de version utilisé pour gérer le schéma du profil de lancement DockerCompose.
composeProfile Propriété parente qui définit la définition du profil de lancement. Ses propriétés enfants sont includes et serviceActions
composeProfile – inclut Liste des noms de profil 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 sur F5 ou Ctrl+F5. Les valeurs autorisées sont None, LaunchBrowser et LaunchWCFTestClient.
composeLaunchUrl URL à utiliser lors du 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.