⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

Profils

Table des matières

Avec les profils, vous pouvez définir un ensemble de profils actifs afin que votre modèle d'application Compose soit ajusté pour divers usages et environnements.

L'élément de niveau supérieur services supporte un attribut profiles pour définir une liste de profils nommés. Les services sans attribut profiles sont toujours activés.

Un service est ignoré par Compose quand aucun des profiles listés ne correspond aux profils actifs, sauf si le service est explicitement ciblé par une commande. Dans ce cas, son profil est ajouté à l'ensemble des profils actifs.

Note

Tous les autres éléments de niveau supérieur ne sont pas affectés par profiles et sont toujours actifs.

Les références à d'autres services (par links, extends ou syntaxe de ressource partagée service:xxx) n'activent pas automatiquement un composant qui aurait sinon été ignoré par les profils actifs. Au lieu de cela, Compose retourne une erreur.

Exemple illustratif

services:
  web:
    image: web_image

  test_lib:
    image: test_lib_image
    profiles:
      - test

  coverage_lib:
    image: coverage_lib_image
    depends_on:
      - test_lib
    profiles:
      - test

  debug_lib:
    image: debug_lib_image
    depends_on:
      - test_lib
    profiles:
      - debug

Dans l'exemple ci-dessus :

  • Si le modèle d'application Compose est analysé sans profil activé, il contient seulement le service web.
  • Si le profil test est activé, le modèle contient les services test_lib et coverage_lib, et le service web, qui est toujours activé.
  • Si le profil debug est activé, le modèle contient les services web et debug_lib, mais pas test_lib et coverage_lib, et par conséquent le modèle est invalide concernant la contrainte depends_on de debug_lib.
  • Si les profils debug et test sont activés, le modèle contient tous les services ; web, test_lib, coverage_lib et debug_lib.
  • Si Compose est exécuté avec test_lib comme service explicite à exécuter, test_lib et le profil test sont actifs même si le profil test n'est pas activé.
  • Si Compose est exécuté avec coverage_lib comme service explicite à exécuter, le service coverage_lib et le profil test sont actifs et test_lib est tiré par la contrainte depends_on.
  • Si Compose est exécuté avec debug_lib comme service explicite à exécuter, encore une fois le modèle est invalide concernant la contrainte depends_on de debug_lib, puisque debug_lib et test_lib n'ont pas de profiles communs listés.
  • Si Compose est exécuté avec debug_lib comme service explicite à exécuter et le profil test est activé, le profil debug est automatiquement activé et le service test_lib est tiré comme dépendance démarrant les deux services debug_lib et test_lib.

Voir comment vous pouvez utiliser profiles dans Docker Compose.