【问题标题】:Docker compose doesn't recognize 'env_file'Docker compose 无法识别“env_file”
【发布时间】:2016-10-25 05:43:45
【问题描述】:

我正在尝试使用以下配置运行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

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

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

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

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

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

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


更新

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

【问题讨论】:

    标签: docker environment-variables docker-compose dockerfile docker-build


    【解决方案1】:

    与许多其他版本相关的问题一样,更新到 docker-composev1.7.1 解决了这个问题,就像一个魅力!

    【讨论】:

    • 如何更新 docker-compose?我有最新版本的 Docker 17.06.0 和 docker-compose 是 1.14.1
    • 我在 1.14.0 和 17.05 中也有 compose,但无法在 docker-compose 文件中使用环境变量。
    【解决方案2】:

    我遇到了这个问题,因为我没有从与我的 .envdocker-compose.yml 文件相同的目录中运行 $docker-compose up。该命令仍然可以通过搜索找到docker-compose.yml 文件,但它不会在该位置搜索.env 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-18
      • 2022-08-09
      • 2020-11-08
      • 2020-10-12
      • 2021-03-23
      相关资源
      最近更新 更多