【发布时间】:2016-02-26 15:53:05
【问题描述】:
我最初在Docker forums 上发布了这个问题,但没有得到任何回复。
我想知道为一组服务建模的最佳方法是什么,我们称它们为 db、web 和 batch。 db 只是一个正在运行的数据库服务器实例(想想 MySQL)。 web 是一个需要连接数据库的 Web 应用程序。 batch 是一个批处理应用程序,需要连接到同一个数据库(它可以/将与web 并行运行)。 db 需要运行,web 或 batch 才能运行。但是web 或batch 可以相互独立运行(其中一个或两个可以同时运行)。如果两者同时运行,则它们需要与同一个数据库实例通信(因此db 实际上是在使用volumes_from 一个单独的数据卷容器)。因此,如果用例更简单(想想db 和web,它们总是一起运行),那么它们将被简单地定义为同一个撰写文件中的服务,web 具有指向db 的链接.
据我了解,这些不能都在同一个 Docker compose 配置中定义。相反,我需要三种不同的配置。一个用于db,首先启动,一个用于web(使用external_links 查找db),第三个用于batch(也使用external_links 查找db)。这是正确的,还是有一些我没有考虑的可用机制?假设需要多配置设置,如果 db 组合没有运行,有没有办法在启动 web 或 batch 组合时“懒惰地”初始化它?
【问题讨论】:
标签: docker docker-compose