将参数传递给父Dockerfile
有没有办法使用父docker映像中定义的参数 给定以下子Dockerfile将参数传递给父Dockerfile,docker,arguments,dockerfile,Docker,Arguments,Dockerfile,有没有办法使用父docker映像中定义的参数 给定以下子Dockerfile FROM jenkins USER ${user} RUN echo "${user}" 摘自父母 未在映像中持久化,因此它们在父映像的生成中不可用 与ARG指令不同,ENV值始终保留在生成的映像中 ARG变量不会像ENV变量那样持久化到内置映像中 参数可以通过存储在某个地方来持久化,最简单的地方是在环境变量中 ARG IMAGE_USER=jenkins ENV IMAGE_USER=$IMAGE_USER
FROM jenkins
USER ${user}
RUN echo "${user}"
摘自父母
未在映像中持久化,因此它们在父映像的生成中不可用
与ARG指令不同,ENV值始终保留在生成的映像中
ARG变量不会像ENV变量那样持久化到内置映像中
参数可以通过存储在某个地方来持久化,最简单的地方是在环境变量中
ARG IMAGE_USER=jenkins
ENV IMAGE_USER=$IMAGE_USER
然后,子映像中的所有
运行
步骤都可以访问其环境中的image\u USER
。我是否可以在重写用户之前,以某种方式提取我的Dockerfile
中用户指令的当前值并保存它。类似这样的事情:user=${user}
,然后user root
,然后做一些事情,然后user${user}
?@lanoxx否,不使用Dockers构建系统。您可以将用户存储在映像文件系统中的某个位置,并使用类似于shell的方法返回到存储的用户。
ARG IMAGE_USER=jenkins
ENV IMAGE_USER=$IMAGE_USER