Docker Compose .env File Not Read



我有一个。env文件,我试图在Docker撰写文件中使用,以传递到要在Dockerfile中定义的入口点脚本中使用的容器。

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

Docker compose files:

主docker组合文件:

version: '3.4'
services:
web:
build
context: .

覆盖docker撰写文件:

version: '3.4'
services:
web:
environment:
- RUN_MIGRATIONS_ON_START=${RUN_MIGRATIONS_ON_START}
- WS_SCHEME=${WS_SCHEME}
env_file:
- .env.dev

解决方案

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

在文档

中详细描述

您的配置选项可以包含环境变量。组成使用shell环境中的变量值

最新更新