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

时间:2017-07-05 10:46:13

标签: docker docker-compose

我对多个项目使用相同的docker-compose.yml文件。我真的很懒,所以我不想用docker-compose -p $PROJECT_NAME up启动它们。

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

3 个答案:

答案 0 :(得分:8)

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

COMPOSE_PROJECT_NAME=SOMEPROJECTNAME

它不灵活,但总比没有好。目前,有一项关于此问题的公开issue作为提案。

答案 1 :(得分:6)

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

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

.PHONY: container-name
container-name:
    docker-compose -p $PROJECT_NAME up -d container-name

然后运行make container-name

我知道这不是您要的,但也许可以使您的生活更轻松。

答案 2 :(得分:1)

您可以将它们添加为环境变量,这些变量可通过使用docker compose打开容器的会话中提供。

也就是说,如果您想在docker-compose.yaml中的某个地方使用$ PROJECT_NAME,那么如果此变量在您的会话中有值,那么它就会被选中。

在yaml中,您可以根据需要将其分配给任何内容。你想要作为命令行arg到某些脚本,即使这也是可能的。即,

working_dir: /opt
command: /bin/bash -c './script.sh ${PROJECT_NAME}'
volumes:
    - /var/run/:/host/var/run/

我正在使用 docker version:Docker版本17.09.0-ce,构建afdb6d4 docker-compose版本:docker-compose版本1.14.0,build c7bdf9e