在docker-compose中忽略env_file并导致“未设置...变量”警告

时间:2018-02-04 12:04:38

标签: docker environment-variables docker-compose

我只想在docker-compose文件中使用从文件加载的环境变量。但是在运行容器之后,我才得到

  

警告:未设置TESTVAR变量。默认为空字符串。

仅找到了this topic,但我正在使用更高版本的docker(docker-compose:1.14.0,docker:17.05.0-ce)。我将编码更改为ISO 8859-1,因为我发现了一个github问题,其中检测到编码的奇怪行为。两者都不起作用。

我的docker-compose文件

version: '2'
services:
  mysql:
    container_name: test_${TESTVAR}
    build: mysql
    mem_limit: 1G
    env_file:
      - credentials.env

credentials.env仅包含TESTVAR=test123。首先,我运行docker-compose up mysql并尝试直接在compose文件中指定环境变量,如下所示:

environment:
  - TESTVAR=1234

也不行。

1 个答案:

答案 0 :(得分:2)

如果你想在docker-compose.yml中使用变量,你可以使用.env文件,docker docs

$ cat .env
TAG=v1.5
TESTVAR=123

$ cat docker-compose.yml
version: '3'
services:
  web:
    image: "webapp:${TAG}"
    environment: ["TESTVAR=${TESTVAR}"]