paint-brush
Cómo extender el archivo de redacción de Dockerpor@ifomin
8,672 lecturas
8,672 lecturas

Cómo extender el archivo de redacción de Docker

por Igor Fomin1m2020/03/05
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow
ES

Demasiado Largo; Para Leer

Cómo extender el archivo de composición de Docker: ¿Cómo usar múltiples archivos de composición de Docker en diferentes servidores? Hay una página en la documentación oficial que describe esto: https://://docs.docker.com/compose/extends/ La opción más versátil es la opción 3, que es la más cómoda y conveniente. Se reduce a las siguientes opciones: docker-compose.yml.override.yML o docker-commpose.prod.yml. Sintaxis de anulación: Docker compose lee dos archivos, y una sintaxis de anulación opcional.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Cómo extender el archivo de redacción de Docker
Igor Fomin HackerNoon profile picture

¿Cómo usar archivos de composición de docker diferentes/múltiples en diferentes servidores?

Hay una página en la documentación oficial que describe esto: https://docs.docker.com/compose/extends/

Sin embargo, esta página solo describe las primeras 2 opciones y omite por completo la opción 3, que es la más versátil y conveniente.

Se reduce a las siguientes opciones:

1. docker-compose.override.yml

Por defecto, cuando ejecutas -

 docker-compose up
- Docker compose lee dos archivos, un docker-compose.yml y un docker-compose.override.yml opcional.

Por lo tanto, es posible que solo tenga docker-compose.yml en mi máquina local y docker-compose.yml + docker-compose.override.yml en mis servidores dev/prod.

Esto no es muy conveniente y será difícil tener docker-compose.override.yml correcto en mi repositorio, especialmente cuando mis servidores tendrán diferentes configuraciones.

2. Sintaxis de anulación:

 docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d

Esto es mucho mejor, y puedo mantener varios archivos de anulación diferentes, como docker-compose.prod.yml , docker-compose.dev.yml , etc.

Pero hay 2 problemas con el enfoque anterior:

  • los archivos se combinan en tiempo de ejecución, por lo que no veo el archivo docker-compose.yml fusionado resultante y no puedo verificar la corrección de la fusión
  • esta sintaxis no funciona en modo docker swarm

3. Comando de configuración de redacción de Docker

 docker-compose -f docker-compose.yml -f docker-compose.prod.yml config > docker-compose.stack.yml

Esto funciona exactamente de la misma manera que las 2 opciones anteriores, excepto que me proporciona el archivo yml resultante:

 docker-compose.stack.yml
, que puedo revisar y comprobar si es correcto. Además, ahora puedo usar este enfoque en Docker Swarm.

Ahora puedo usarlo como:

 docker-compose -f docker-compose.stack.yml up -d

O en enjambre:

 docker stack deploy -c docker-compose.stack.yml mystack

¡Manténganse al tanto!