Docker-compose env var无法正常工作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker-compose env var无法正常工作相关的知识,希望对你有一定的参考价值。
我试图在我的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的
args
子选项来定义构建时环境变量。 - from docker docs
所以你可以使用参数(args
)而不是环境(environment
):
Docker Compose(v2或v3):
version: '2' # or 3
services:
test:
build:
context: ./
args:
TESTVAR: 'YOU ARE BEST'
Dockerfile:
FROM alpine
ARG TESTVAR
RUN echo "test variable is: $TESTVAR"
要求:
- Docker撰写:1.6.0+
- Docker Engine:1.10.0+
注意:您需要在ARG TESTVAR
之后定义参数(FROM
)以使用docker-compose文件(more info on StackOverflow)上指定的值。
以上是关于Docker-compose env var无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
如何从.env文件获取环境变量到docker-compose.yml?
在 docker-compose 的 .env 文件中使用多行值
无法使用 process.env 变量连接到数据库,但 process.env vars 在日志中打印
VueJS 和 Webpack:构建项目无法访问 ENV var