【问题标题】:Docker Compose .env File Not ReadDocker Compose .env 文件未读取
【发布时间】:2021-10-18 21:05:04
【问题描述】:

我有一个 .env 文件,我正试图在 Docker Compose 文件中使用它来传递给容器,以便在 Dockerfile 中定义的入口点脚本中使用。

我有以下有效的 Dockerfile(分布在两个文件中,一个覆盖)。 .env.dev 文件与 docker compose 文件位于同一目录中。环境变量值未传递给容器。当我添加“=${RUN_MIGRATIONS_ON_START}”时,变量值为空白。如果我把它关掉,那么变量甚至不会在容器中设置。

Docker 编写文件:

主 docker 撰写文件:

version: '3.4'

services:
  web:
    build
      context: .

覆盖 docker compose 文件:

version: '3.4'
services:

  web:
    environment:
      - RUN_MIGRATIONS_ON_START=${RUN_MIGRATIONS_ON_START}
      - WS_SCHEME=${WS_SCHEME}
    env_file:
      - .env.dev

【问题讨论】:

    标签: docker docker-compose


    【解决方案1】:

    解决方案

    docker-compose.override.yml

    version: '3.4'
    services:
      web:
        env_file:
          - .env.dev
    

    .env.dev

    RUN_MIGRATIONS_ON_START=FOO
    WS_SCHEME=BAR
    

    为什么

    environment:
      - X=${Y} # Y is a variable from the local shell environment, not from .env
    

    documentation中有详细描述

    您的配置选项可以包含环境变量。撰写 使用 shell 环境中的变量值,其中 docker-compose 已运行。

    【讨论】:

    • 所以基本上,去掉environment 部分,只使用.env 文件和env_file 部分,否则你将覆盖你在.env 中设置的内容。
    猜你喜欢
    • 1970-01-01
    • 2020-03-18
    • 2018-07-07
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    • 2023-01-17
    • 2021-10-25
    相关资源
    最近更新 更多