Utiliser les services de fournisseur
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 :
- Définir un service avec l'attribut
provider
- Spécifier le
type
de fournisseur que vous voulez utiliser - Configurer toutes les options spécifiques au fournisseur
- 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éeDATABASE_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 :
- Un plugin Docker CLI (par ex.,
docker-model
) - 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 :
- Interpréter les options fournies dans le service de fournisseur
- Provisionner la capacité demandée
- 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 :
- Configuration simplifiée : Vous n'avez pas besoin de configurer et gérer manuellement les capacités de plateforme
- Approche déclarative : Vous pouvez déclarer toutes les dépendances de votre application en un seul endroit
- 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.