Ce que je veux faire, c'est séparer les réglages spécifiques à mon environnement dans un override.yml, rien d'extraordinaire là-bas ... mais mes remplacements seront exactement les mêmes pour chaque service déployé et je veux éviter d'avoir à écrire le même remplacement pour chaque service unique (et ajouter continuellement de nouvelles sections à la dérogation à mesure que de nouveaux services sont introduits).
Au lieu de cela, je voudrais créer une définition qui dit "appliquer cette dérogation à chaque service". Existe-t-il déjà un tel concept qui me manque peut-être ?
Exemple ...
docker-compose.yml :
aservice:
image: whatever1
environment:
FOO: BAR
un autre docker-compose.yml :
anotherservice:
image: whatever2
mon docker-compose.override.yml :
<magickeyword>:
environment:
FLIBBLE: flobble
dns:
- server1
- server2
Désormais, chaque service déployé aurait DNS server1 & server2 et la variable d'environnement FLIBBLE.
Je me rends compte que je pourrais le faire si tous les services étendaient le même service de base car je pouvais appliquer la dérogation à cela, mais existe-t-il de toute façon une dérogation globale/par défaut sans extension commune ?
Pour le moment, j'ai un hack qui implique une analyse de substitution générée pour tous les services définis et génère le fichier de substitution à la volée, mais cela semble être un cas d'utilisation que je ne peux pas être la première personne à rencontrer, alors je me suis demandé si je Je viens de rater la solution évidente à ce problème dans composer.
Vous pouvez simplement avoir un fichier base.yml
dans chaque dossier de projet avec un service base
contenant uniquement votre clé environment
, puis demander à chaque service d'étendre le service base
.
Ce n'est plus une bonne solution étant donné que extends:
est supprimé dans 3.x https://github.com/moby/moby/issues/31101
@saml consultez https://github.com/docker/compose/pull/5140
Commentaire le plus utile
@saml consultez https://github.com/docker/compose/pull/5140