从docker compose开始排除服务



用例

CCD_ 1定义了表示整个应用程序堆栈的多个服务。在开发模式中,我们希望动态地排除某些服务,这样我们就可以从IDE中运行它们。

从Docker compose 1.28开始,可以将配置文件分配给此处记录的服务,但据我所知,它只允许指定应启动哪些服务,而不允许排除哪些服务。

我可以想象的另一种方式是将";可排除的";服务转换为自己的docker-compose.yml文件,但所有这些对我来说似乎有点乏味

你有更好的方法来排除服务吗?

我们似乎都忽略了关于概要文件的一件非常重要的事情,那就是:

没有profiles属性的服务将始终启用

因此,如果您使用以下文件运行docker-compose up

version: "3.9"
services:
database:
image: debian:buster
command: echo database
frontend:
image: debian:buster
command: echo frontend
profiles: ['frontend']
backend:
image: debian:buster
command: echo backend
profiles: ['backend']

它将仅启动database容器。如果使用docker-compose --profile backend up运行它,它将带来databasebackend容器。要启动docker-compose --profile backend --profile frontend up所需的一切,或者使用一个配置文件,但需要多次。

在我看来,这是使docker-compose.yml0不运行某些容器的最佳方式。你只需要用一个个人资料来标记它们,它就完成了。我建议你也给档案参考第二次机会。除了一些好的例子外,它还解释了该功能如何与服务依赖项交互。

最新更新