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
最好的祝福。