我正在处理一个docker-compose文件,我需要在环境变量中指定 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 up 时,它应该创建容器名称, container_team_1 ,而不是它作为 contaner_ <运行/强>
我也尝试使用 .env 文件,但仍然不能在container_name中使用环境变量,
但是,如果我运行 docker-compose config ,我可以看到所有变量设置如下,
container_name: container_
environment:
COMPANY_NAME: team_1
但是,实际上它没有附加在容器名中。
答案 0 :(得分:1)
正如我在docker-compose文档的variable substitution部分中所看到的,您需要在运行$INSTANCE_NAME
的shell中设置docker-compose up
,因为:
Compose使用shell环境中的变量值 docker-compose正在运行。
首先,做一些事情:
export INSTANCE_NAME=my_instance
然后:
docker-compose up
最好的问候。
答案 1 :(得分:0)
您不能将docker-compose.yml中定义的环境变量用于variable substitution。
默认情况下,Docker Compose使用 .env ,因此在.env文件中定义时它应该可以使用
INSTANCE_NAME=team_1
然后运行docker-compose up