在docker-compose文件中设置$ PROJECT_NAME?

Hed*_*dge 4 docker docker-compose

我正在docker-compose.yml为多个项目使用相同的文件.我真的很懒,所以我不想用它们开始docker-compose -p $PROJECT_NAME up.

从Docker版本17.06.0开始,可以直接在docker-compose.yml文件中设置变量.

Ayu*_*hya 9

现在我们可以使用带有自定义项目名称和设置的.env文件

COMPOSE_PROJECT_NAME=SOMEPROJECTNAME

它不灵活,但总比没有好.目前,有一个未解决的问题是提案.

  • 愚蠢的是,一直以来他们仍然无法直接在撰写文件中添加这个小功能。他们不这样做的理由是什么?如果我想在多个项目的同一目录中运行 docker-compose 该怎么办?那么`.env`文件就没用了 (3认同)

小智 8

我知道很久以前就有人问过这个问题,但我遇到了同样的问题。有人建议添加功能https://github.com/docker/compose/issues/745,但他们不想。

但是,我在目录的根目录中有一个 Makefile,然后您可以在 Makefile 中添加类似的内容:

.PHONY: container-name
container-name:
    docker-compose -p $PROJECT_NAME up -d container-name
Run Code Online (Sandbox Code Playgroud)

然后运行 make container-name

我知道这不是你想要的,但也许可以让你的生活更轻松一些。


Mic*_*orc 8

220806 更新:您现在可以在 docker-compose YAML 文件中使用顶级名称属性。

这是#745提案的结果。