docker-compose未在环境变量中设置container_name

时间:2017-03-20 08:18:19

标签: docker docker-compose

我正在处理一个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

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

2 个答案:

答案 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