传递参数给父Dockerfile

19

有没有办法使用父级Docker镜像中定义的参数?

给出以下子Dockerfile:

FROM jenkins

USER ${user}

RUN echo "${user}"

来自父级Dockerfile的摘录

FROM openjdk:8-jdk

ARG user=jenkins
ARG group=jenkins
ARG uid=1000
ARG gid=1000
1个回答

16

构建参数不会保存在映像中,因此它们在从父映像FROM构建时不可用。

与ARG指令不同,ENV值始终会保存在构建的映像中。

ARG变量不会像ENV变量一样保存到构建的映像中。

这些参数可以通过将它们存储在某个地方来保存,最简单的地方是环境变量。

ARG IMAGE_USER=jenkins
ENV IMAGE_USER=$IMAGE_USER

子镜像中的所有 RUN 步骤都将在其环境中访问IMAGE_USER


1
我能否在我的' Dockerfile '中提取USER指令的当前值并在覆盖USER之前保存它?类似这样:'user=${USER}',然后'USER root',然后执行操作,最后'USER ${user}'? - lanoxx
{btsdaf} - Matt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接