我们正在开发一个相当复杂的应用程序,它有一个节点服务器与一个CouchDB实例对话,另一个节点服务器与一个redis实例对话,一个第三个节点服务器与其他两个节点服务器进行对话,还有一个Redis存储区,所有这三个节点服务器都与之对话。
本地开发需要安装和运行CouchDB、两个redis实例和三个节点应用程序。这确实不是一个问题,但我们希望开发人员能够直接进入项目,并立即开始开发,而不存在太多的进入障碍。我想要创建一个码头容器来运行所有这些事情,这样他们就可以构建和运行它,并开始没有任何麻烦的开发。
我正在阅读码头工人最佳做法文档,它提到每个容器只运行一个进程--实际上我们有6个进程。它也建议为依赖服务使用容器链接,但在这种情况下,您似乎仍然需要6个独立的对接容器/实例,并且必须单独运行每个容器,然后链接它们。我想进一步简化一下。
是否有一个标准用于创建一个由多个Dockerfile组成的回购系统,所有这些文件都可以相互交互。有没有一种简单的方法可以同时连接、运行和构建它们?这是一个好主意,还是最好使用supervisor在一个容器中运行所有这些进程?
发布于 2015-07-02 17:01:11
您需要的是码头工 (以前的图),它允许您编排多个容器的创建和链接。有其他方法可以做到这一点,但写作是“官方”的方式,得到最多的关注。
本质上,您可以让它创建您想要的内容,并为您处理链接,因此,一个简单的“对接-合成-d”和“对接-撰写停止”将是您的开发人员需要进行的大部分工作。
至于管理多个Dockerfile,您应该在构建它们之后将它们提交给码头枢纽。从那里,您的docker-compose.yml可以将每个映像拉到开发人员机器上。您还可能重用官方存储库,而不是编写您自己的Dockerfile,只需使用ENV变量通过撰写定制它们。例如,官方红宝石形象甚至可以接受一个自定义redis.conf文件,而不需要您自己的自定义映像/容器。
https://stackoverflow.com/questions/31190202
复制相似问题