想象一下一个不平凡的docker compose应用程序,其中nginx位于Web应用程序的前面,并且有几个链接的数据存储区:
web:
build: my-django-app
volumes:
- .:/code
ports:
- "8000:8000"
links:
- redis
- mysql
- mongodb
nginx:
image: nginx
links:
- web
redis:
image: redis
expose:
- "6379"
mysql:
image: mysql
volumes:
- /var/lib/mysql
environment:
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
- MYSQL_DATABASE=myproject
mongodb:
image: mongo
数据库非常容易配置(目前),容器公开了很好的环境变量来控制它们(请参见mysql容器),但是nginx是什么?我们需要为此模板一个虚拟主机文件,对吗?
我不想投射自己的映像,这需要针对每个更改的配置(从不同开发人员的设置)进行重新构建,以进行测试,以及进行分阶段和生产.如果我们想通过轻巧的方式通过配置选项进行A / B测试,该怎么办?
这里需要一些集中化的配置管理,也许是由docker-compose控制的可以将配置文件写到共享卷的东西?
随着添加新服务,这将变得更加重要(想象一个微服务云,而不是像本例中那样的整体Web应用程序)
在docker-compose项目中管理配置的正确方法是什么?
最佳答案
通常,您会发现大多数容器都使用入口点脚本通过使用环境变量填充配置文件来配置应用程序.有关此方法的高级示例,请参见0001 for WordPress official image.
因为这是一种常见的模式,所以Jason Wilder创建了dockerize项目来帮助自动化该过程.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。