Docker compose 无法识别“env_file”

Dov*_*ski 5 environment-variables docker dockerfile docker-compose docker-build

我尝试docker-compose up使用以下配置运行:

php:
    image: php:7.0-fpm
    expose:
        - 9000
    links:
        - nginx

nginx:
    env_file: .env
    image: nginx:latest
    ports:
        - 80:80
        - 433:433
    environment:
        - NGINX_HOST: ${APP_URL}

mysql:
    env_file: .env
    image: mysql:latest
    ports:
        - 3306:3306
    environment:
        - MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
        - MYSQL_DATABASE: ${DB_DATABASE}
        - MYSQL_USER: ${DB_USERNAME}
        - MYSQL_PASSWORD: ${DB_PASSWORD}
        - MYSQL_ALLOW_EMPTY_PASSWORD: no
Run Code Online (Sandbox Code Playgroud)

.env在同一目录中有一个文件,并且能够在 shell 中测试该变量,但 docker 似乎没有加载.env.

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

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

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

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

错误:文件“./docker-compose.yaml”中验证失败


更新

我只是将env_file值更改为指向不存在的文件,并且不会引发任何错误。看起来 docker 完全忽略了这个选项。

Dov*_*ski 3

与许多其他版本相关的问题一样,更新到docker-compose v1.7.1解决了该问题,效果非常好!

  • 如何更新 docker-compose?我有最新版本的 Docker 17.06.0 和 docker-compose 是 1.14.1 (3认同)