我已经构建了一个简单的Docker Compose项目作为开发环境.我有
PHP-FPM,Nginx,MongoDB和Code容器.
现在我想自动化流程并部署到生产环境.
docker-compose.yml可以扩展,可以定义多个环境.有关更多信息,请参见
https://docs.docker.com/compose/extends/.
但是,我的容器有Dockerfiles.而对于开发环境,需要更多的包而不是生产.
主要问题是我应该为dev和prod使用单独的dockerfiles并在docker-compose.yml和production.yml中管理它们吗?
单独的dockerfiles很容易,但有代码重复.
另一种解决方案是使用环境变量并以某种方式从bash脚本处理它们(可能作为入口点?).
我正在寻找其他想法.
最佳答案 根据
the official docs:
… you’ll probably want to define a separate Compose file, say
production.yml
, which specifies production-appropriate configuration.Note: The
extends
keyword is useful for maintaining multiple Compose
files which re-use common services without having to manually copy and
paste.