以编程方式向docker compose项目添加服务

时间:2017-12-11 16:34:58

标签: docker docker-compose microservices

我有一个基于Docker的组件项目,并与docker-compose一起编排。其中一些是可选的,可以在运行时添加。

我可以考虑两种方法来实现这一目标:

  • 创建新的serviceA.yml撰写文件并将其作为单独的项目运行
  • serviceA添加到我的基地compose.yml并再次运行

这样做的首选方法是什么?

我还看到您可以将docker-compose个文件与extend关键字合并,但我认为这不适合,因为我的服务数量可变,我可以在运行时添加。

1 个答案:

答案 0 :(得分:5)

我通常以having multiple yml files结束。

然后,您可以向 docker-compose 命令添加几个 -f 标志,以指示要运行的服务。

例如,有:

  • docker-compose.yml:包含基本服务
  • docker-compose-additional-services.yml:包含附加/可选服务。

您可以执行以开始:

 docker-compose -f docker-compose.yml -f docker-compose-additional-services.yml up

它将启动所有服务。

请注意,所有服务都被合并,就好像它们位于单个文件中一样,因此您可以将( depends_on link )服务从一个文件引用到另一个文件。