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

Utiliser les services de fournisseur

Requires: Docker Compose 2.36.0 and later

Docker Compose prend en charge les services de fournisseur, qui permettent l'intégration avec des services dont les cycles de vie sont gérés par des composants tiers plutôt que par Compose lui-même.
Cette fonctionnalité vous permet de définir et d'utiliser des services spécifiques à la plateforme sans avoir besoin de configuration manuelle ou de gestion directe du cycle de vie.

Que sont les services de fournisseur ?

Les services de fournisseur sont un type spécial de service dans Compose qui représente les capacités de plateforme plutôt que les conteneurs. Ils vous permettent de déclarer des dépendances sur des fonctionnalités spécifiques de plateforme dont votre application a besoin.

Quand vous définissez un service de fournisseur dans votre fichier Compose, Compose travaille avec la plateforme pour provisionner et configurer la capacité demandée, la rendant disponible à vos services d'application.

Utiliser les services de fournisseur

Pour utiliser un service de fournisseur dans votre fichier Compose, vous devez :

  1. Définir un service avec l'attribut provider
  2. Spécifier le type de fournisseur que vous voulez utiliser
  3. Configurer toutes les options spécifiques au fournisseur
  4. Déclarer les dépendances de vos services d'application vers le service de fournisseur

Voici un exemple de base :

services:
  database:
    provider:
      type: awesomecloud
      options:
        type: mysql
        foo: bar  
  app:
    image: myapp 
    depends_on:
       - database

Remarquez l'attribut provider dédié dans le service database. Cet attribut spécifie que le service est géré par un fournisseur et vous permet de définir des options spécifiques à ce type de fournisseur.

L'attribut depends_on dans le service app spécifie qu'il dépend du service database. Cela signifie que le service database sera démarré avant le service app, permettant aux informations du fournisseur d'être injectées dans le service app.

Comment ça fonctionne

Pendant l'exécution de la commande docker compose up, Compose identifie les services s'appuyant sur des fournisseurs et travaille avec eux pour provisionner les capacités demandées. Le fournisseur remplit ensuite le modèle Compose avec des informations sur comment accéder à la ressource provisionnée.

Cette information est transmise aux services qui déclarent une dépendance sur le service de fournisseur, généralement à travers des variables d'environnement. La convention de nommage pour ces variables est :

<<NOM_SERVICE_FOURNISSEUR>>_<<NOM_VARIABLE>>

Par exemple, si votre service de fournisseur est nommé database, votre service d'application pourrait recevoir des variables d'environnement comme :

  • DATABASE_URL avec l'URL pour accéder à la ressource provisionnée
  • DATABASE_TOKEN avec un token d'authentification
  • Autres variables spécifiques au fournisseur

Votre application peut ensuite utiliser ces variables d'environnement pour interagir avec la ressource provisionnée.

Types de fournisseur

Le champ type dans un service de fournisseur fait référence au nom soit de :

  1. Un plugin Docker CLI (par ex., docker-model)
  2. Un binaire disponible dans le PATH de l'utilisateur

Quand Compose rencontre un service de fournisseur, il cherche un plugin ou un binaire avec le nom spécifié pour gérer le provisionnement de la capacité demandée.

Par exemple, si vous spécifiez type: model, Compose cherchera un plugin Docker CLI nommé docker-model ou un binaire nommé model dans le PATH.

services:
  ai-runner:
    provider:
      type: model  # Cherche le plugin docker-model ou le binaire model
      options:
        model: ai/example-model

Le plugin ou binaire est responsable de :

  1. Interpréter les options fournies dans le service de fournisseur
  2. Provisionner la capacité demandée
  3. Retourner des informations sur comment accéder à la ressource provisionnée

Cette information est ensuite transmise aux services dépendants comme variables d'environnement.

Avantages d'utiliser les services de fournisseur

Utiliser les services de fournisseur dans vos applications Compose offre plusieurs avantages :

  1. Configuration simplifiée : Vous n'avez pas besoin de configurer et gérer manuellement les capacités de plateforme
  2. Approche déclarative : Vous pouvez déclarer toutes les dépendances de votre application en un seul endroit
  3. Flux de travail cohérent : Vous utilisez les mêmes commandes Compose pour gérer toute votre application, y compris les capacités de plateforme

Créer votre propre fournisseur

Si vous voulez créer votre propre fournisseur pour étendre Compose avec des capacités personnalisées, vous pouvez implémenter un plugin Compose qui enregistre les types de fournisseur.

Pour des informations détaillées sur comment créer et implémenter votre propre fournisseur, référez-vous à la documentation des Extensions Compose.
Ce guide explique le mécanisme d'extension qui vous permet d'ajouter de nouveaux types de fournisseur à Compose.

Référence