如何从父Docker文件中使用环境变量?

时间:2018-01-21 00:00:08

标签: docker environment-variables parameter-passing environment

我有两个Dockerfiles Dockerfile.A & Dockerfile.B 其中 Dockerfile.B 使用 Dockerfile.A 中的FROM关键字继承。在 Dockerfile.A 中,我设置了一个我想在 Dockerfile.B (PATH)中使用的环境变量。这是可能的,我将如何去做呢?

到目前为止,我在 Dockerfile.A

中尝试了以下内容

1     RUN导出PATH = / my / new / dir:$ PATH

2     ENV PATH = / my / new / dir:$ PATH

第3     RUN echo" PATH = / my / new / dir:$ PATH" > / etc / profile中

分别在 Dockerfile.B 中:

1 只需使用路径中的工具来查看它们是否可用(它们不是)

2     ENV PATH

第3     运行源/ etc / profile

我意识到每个RUN命令都在它自己的环境中执行,这可能就是ENV关键字存在的原因,使得可以独立于RUN命令来处理环境。但我不确定这对我的情况意味着什么。

那我怎么能这样做呢?

1 个答案:

答案 0 :(得分:2)

按预期为我工作。

Dockerfile.A

FROM alpine:3.6
ENV TEST=VALUE

构建它。

docker build -t imageA .

Dockerfile.B

FROM imageA
CMD echo $TEST

构建它。

$ docker build -t imageB .

运行它

$ docker run -it imageB
VALUE