Jan*_*sky 2 docker docker-compose
我试图在我的 docker compose 文件中设置 env var,但 var 似乎没有传播到我的 docker。
我的码头工人组成:
test:
build: ./
environment:
TESTVAR: "YOU ARE BEST"
Run Code Online (Sandbox Code Playgroud)
我的码头档案:
FROM alpine
RUN echo test variable is: $TESTVAR
Run Code Online (Sandbox Code Playgroud)
输出:
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
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
注意:如果您的服务指定了构建选项,则环境中定义的变量在构建过程中不会自动可见。使用
argsbuild的子选项来定义构建时环境变量。-来自 docker 文档
因此,您可以使用参数 ( args) 而不是环境 ( environment):
Docker Compose(v2 或 v3):
version: '2' # or 3
services:
test:
build:
context: ./
args:
TESTVAR: 'YOU ARE BEST'
Run Code Online (Sandbox Code Playgroud)
Dockerfile:
FROM alpine
ARG TESTVAR
RUN echo "test variable is: $TESTVAR"
Run Code Online (Sandbox Code Playgroud)
要求:
注意:您需要在 之后定义参数 ( ARG TESTVAR)FROM以使用在 docker-compose 文件中指定的值(有关 StackOverflow 的更多信息)。
| 归档时间: |
|
| 查看次数: |
3982 次 |
| 最近记录: |