Len*_*and 1 environment environment-variables parameter-passing docker
我有两个 Dockerfiles Dockerfile.A&Dockerfile.B其中Dockerfile.B使用 FROM 关键字继承Dockerfile.A。我Dockerfile.A设置了一个我想在Dockerfile.B(PATH)中使用的环境变量。这可能吗?我该怎么做?
到目前为止,我已经尝试过以下操作Dockerfile.A:
RUN export PATH=/my/new/dir:$PATH
Run Code Online (Sandbox Code Playgroud)
ENV PATH=/my/new/dir:$PATH
Run Code Online (Sandbox Code Playgroud)
RUN echo "PATH=/my/new/dir:$PATH" >/etc/profile
Run Code Online (Sandbox Code Playgroud)
和 中Dockerfile.B,分别:
只需使用路径中的工具来查看它们是否可用(它们不可用)
ENV PATH
Run Code Online (Sandbox Code Playgroud)
RUN source /etc/profile
Run Code Online (Sandbox Code Playgroud)
我意识到每个 RUN 命令都是在它自己的环境中执行的,这可能就是 ENV 关键字存在的原因,以便可以独立于 RUN 命令来处理环境。但我不确定这对我的情况意味着什么。
那么我该怎么做呢?
按我的预期工作。
Dockerfile.A
FROM alpine:3.6
ENV TEST=VALUE
Run Code Online (Sandbox Code Playgroud)
建造它。
docker build -t imageA .
Run Code Online (Sandbox Code Playgroud)
Dockerfile.B
FROM imageA
CMD echo $TEST
Run Code Online (Sandbox Code Playgroud)
建造它。
$ docker build -t imageB .
Run Code Online (Sandbox Code Playgroud)
运行
$ docker run -it imageB
VALUE
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3997 次 |
| 最近记录: |