docker组合服务的集中configuration

想象一下,一个非平凡的泊坞窗撰写应用程序,在一个Web应用程序的前面nginx和一些链接的数据存储:

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 

数据库很容易configuration(现在),容器公开很好的环境variables来控制它们(请参阅mysql容器),但是nginx什么? 我们需要为这个模板创build一个虚拟主机文件,对吗?

我不想推出我自己的形象,这将需要从不同的开发者的设置,每个更改的configuration重build,以testing ,通过舞台生产 。 如果我们想以轻量级的方式通过翻转configuration选项来进行A / Btesting呢?

在这里需要一些集中的configurationpipe理 ,可能是由docker-compose控制的,可以将configuration文件写入共享卷?

随着新服务的添加,这只会变得更加重要(想象一下微服务云,而不是像在这个例子中那样是一个单一的web应用程序)

在docker-compose项目中pipe理configuration的正确方法是什么?

一般来说,您会发现大多数容器使用入口脚本通过使用环境variables填充configuration文件来configuration应用程序。 有关此方法的高级示例,请参阅Wordpress官方图像的入口点脚本 。

由于这是一种常见模式,Jason Wilder创build了dockerize项目来帮助实现stream程的自动化。