Docker compose环境变量不工作

Docker compose环境变量不工作,docker,docker-compose,Docker,Docker Compose,我试图在docker compose文件中设置env var,但该var似乎不会传播到我的docker 我的码头工人: test: build: ./ environment: TESTVAR: "YOU ARE BEST" 我的dockerfile: FROM alpine RUN echo test variable is: $TESTVAR 产出: Step 1/2 : FROM alpine ---> 3fd9065eaf02 Step 2/2 : RUN

我试图在docker compose文件中设置env var,但该var似乎不会传播到我的docker

我的码头工人:

test:
  build: ./
  environment:
    TESTVAR: "YOU ARE BEST"
我的dockerfile:

FROM alpine

RUN echo test variable is: $TESTVAR
产出:

Step 1/2 : FROM alpine
 ---> 3fd9065eaf02
Step 2/2 : RUN echo test variable is $TESTVAR
 ---> Running in d5f5505b26db
test variable is
Removing intermediate container d5f5505b26db
 ---> a9c019ac7eff
Successfully built a9c019ac7eff
Successfully tagged phpfpm_test:latest
Recreating phpfpm_test_1 ... done
Attaching to phpfpm_test_1
我错过什么了吗

注意:如果您的服务指定了生成选项,则在生成期间,环境中定义的变量不会自动可见。使用build的子选项定义构建时环境变量。-

因此,您可以使用参数而不是环境:

Docker Compose v2或v3:

Dockerfile:

FROM alpine

RUN echo test variable is: $TESTVAR
要求:

Docker Compose:1.6.0+ Docker引擎:1.10.0+
注意:您需要在FROM之后定义参数ARG TESTVAR,以使用docker compose文件中指定的值。

您可以在docker compose文件的同一目录中使用.env文件,对我有效。

当我在定义服务时使用image而不是build选项时,该怎么办?
FROM alpine
ARG TESTVAR

RUN echo "test variable is: $TESTVAR"