docker-compose不是从环境variables中设置container_name

我正在处理一个docker-compose文件,在这个文件中我需要从一个环境variables中指定container_name

的docker-compose.yml文件如下所示:

version: '3.0' services: jenkins: environment: - INSTANCE_NAME=team_1 image: my_image container_name: container_$INSTANCE_NAME ports: - "80:80" expose: - "80" 

所以,我认为,当我运行docker-compose时,它应该创build容器作为名称container_team_1 ,而不是它作为contaner_

我也试过使用.env文件这个东西,但是,我仍然不能在container_name中使用环境variables,

虽然,如果我运行docker-composeconfiguration我可以看到所有的variables设置如下,

 container_name: container_ environment: COMPANY_NAME: team_1 

但是,实际上它并没有附在容器名称中。

您不能将在docker-compose.yml中定义的环境variables用于variablesreplace 。

Docker Compose默认使用.env ,所以它应该在.env文件中定义时工作

 INSTANCE_NAME=team_1 

然后运行docker-compose up

正如我在docker-compose文档的variablesreplace部分所看到的,您需要在运行docker-compose up的shell中设置$INSTANCE_NAME ,因为:

Compose使用运行docker-compose的shell环境中的variables值。

首先,做一些事情:

export INSTANCE_NAME=my_instance

接着:

docker-compose up

最好的祝福。