在Docker多阶段映像中跨阶段传递环境变量

时间:2019-12-03 07:21:08

标签: docker dockerfile environment docker-maven-plugin multistage

我有一个Docker映像,该映像具有4个较低的层。

我想使用多级缩小当前图像层的大小,但这会导致跨级丢失环境,端口和cmd配置属性。有没有办法在Dockerfile的各个阶段之间传递此类配置变量。

1 个答案:

答案 0 :(得分:0)

您可以执行以下任一操作

使用基本容器并在那里设置环境值

FROM alpine:latest as base
ARG version_default
ENV version=$version_default

FROM base
RUN echo ${version}

FROM base
RUN echo ${version}

其他方法是如下使用ARGS。有一些重复,但变得更加集中

ARG version_default=v1

FROM alpine:latest as base1
ARG version_default
ENV version=$version_default
RUN echo ${version}
RUN echo ${version_default}

FROM alpine:latest as base2
ARG version_default
RUN echo ${version_default}

https://github.com/moby/moby/issues/37345

复制的注释示例