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

teo*_*one 3 docker microservices docker-compose

我有一个基于Docker和orchestrated的组件的项目docker-compose.其中一些是可选的,可以在运行时添加.

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

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

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

我也看到你可以将docker-compose文件与extend关键字结合起来,但我认为这不适合,因为我可以在运行时添加可变数量的服务.

Gon*_*heu 6

我通常最终会有多个yml文件.

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

例如,拥有:

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

你可以执行开始:

 docker-compose -f docker-compose.yml -f docker-compose-additional-services.yml up
Run Code Online (Sandbox Code Playgroud)

它将启动所有服务.

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