【问题标题】:"docker compose" environment file pass through shell variables don't work anymore“docker compose”环境文件通过shell变量不再起作用
【发布时间】:2021-11-20 21:29:54
【问题描述】:

我想使用环境文件 (env_file) 来传递未触及的 shell 变量。正确的语法是什么?

我的docker-compose.yaml 文件:

version: "3.9"
services:
  daemon:
    image: my-image
    env_file:
      - ./env/docker.development.env
    ...

我的env 文件(以前可以用,但现在不能用了):

ASPNETCORE_ENVIRONMENT=Development
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY

AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 曾经从 shell 变量中传递。它不再起作用了。

我试过了:

AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}

容器中生成的环境变量始终为空。 documentation 似乎表明它应该可以工作。

当从 docker-compose.yaml environment 子句中执行此操作时,然后它可以工作,

...
    image: my-image
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}

但我想通过一个普通的env_file 来完成,以避免重复我的所有服务。

注意:使用 Docker Desktop for Windows w/ Linux 子系统版本 4.0.1 (68347)

【问题讨论】:

    标签: docker docker-compose docker-desktop


    【解决方案1】:

    阅读release notes,我意识到有一个新的“Docker Compose V2”选项。

    GitHub 看来,Compose V2 和环境变量似乎仍然存在许多问题。取消选中该选项即可解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-04
      • 2021-09-28
      • 1970-01-01
      • 2016-12-23
      • 2015-06-17
      • 2021-11-27
      相关资源
      最近更新 更多