¿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:
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.
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:
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!