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



>我有一个有 4 个较低层的 docker 镜像。

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

您可以执行以下操作之一

使用基本容器并在其中设置环境值

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 复制的示例

相关内容

  • 没有找到相关文章

最新更新