docker-compose:.env文件未加载

时间:2019-10-31 23:52:21

标签: docker docker-compose

我的docker-compose.yml

version: '3'
services:
  test:
    build: .

我的Dockerfile

FROM alpine:latest
ENTRYPOINT echo $ARG1 $ARG2

我的.env文件

ARG1=argument100
ARG2=argument200

如果我运行docker-compose run test,则会打印出空行。但是,我将env_file部分添加到docker-compose.yml中,以获得预期的输出。

新的docker-compose.yml

version: '3'
services:
  test:
    build: .
    env_file:
    - .env

再次运行docker-compose

$ docker-compose run test
argument100 argument200

我是否使用非法方法将参数传递给ENTRYPOINT内的Docker命令?为什么.env不会自动加载到docker-compose run上?

1 个答案:

答案 0 :(得分:0)

.env文件用于在docker-compose命令本身中设置变量,该变量可用于扩展docker-compose.yml文件本身中的变量。 env_file规范将在容器内定义变量。它们在两个不同的级别上运行。

还有第三种类型的变量build args,可以将其注入到图像的构建中。

每种方法都有其独特的目的,并且不是完成同一件事的多种方式。