Lo que quiero hacer es separar los ajustes específicos de mi entorno en un override.yml, nada lujoso allí ... sin embargo, mis reemplazos serán exactamente los mismos para cada servicio implementado y quiero evitar tener que escribir el mismo reemplazo para cada servicio único (y agregue continuamente nuevas secciones a la anulación a medida que se introducen nuevos servicios).
En su lugar, me gustaría crear una definición que diga "aplicar a esta anulación a todos los servicios". ¿Existe ya tal concepto que quizás me esté perdiendo?
Ejemplo ...
docker-compose.yml:
aservice:
image: whatever1
environment:
FOO: BAR
otro docker-compose.yml:
anotherservice:
image: whatever2
mi docker-compose.override.yml:
<magickeyword>:
environment:
FLIBBLE: flobble
dns:
- server1
- server2
Ahora, cada servicio implementado tendría DNS server1 & server2 y la variable de entorno FLIBBLE.
Me doy cuenta de que podría hacer esto si todos los servicios extendieran el mismo servicio base, ya que podría aplicar la anulación a eso, pero ¿hay alguna forma de establecer la anulación global / predeterminada sin una extensión común?
En este momento, tengo un truco que implica un análisis de anulación generado para cualquier servicio definido y genera el archivo de anulación sobre la marcha, pero parece un caso de uso en el que no puedo ser la primera persona en encontrarme, así que me pregunto si Acabo de perder la solución obvia a esto en componer.
Puede tener un archivo base.yml
en cada carpeta de proyecto con un servicio base
que contenga solo su clave environment
, y luego hacer que cada servicio extienda el servicio base
.
Esta ya no es una buena solución dado que extends:
se elimina en 3.x https://github.com/moby/moby/issues/31101
@saml echa un vistazo a https://github.com/docker/compose/pull/5140
Comentario más útil
@saml echa un vistazo a https://github.com/docker/compose/pull/5140