>我有一个有 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 复制的示例