有没有办法使用父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
答案 0 :(得分:6)
Build arguments未在图片中保留,因此它们在构建ARG IMAGE_USER=jenkins
ENV IMAGE_USER=$IMAGE_USER
父图像时不可用。
与ARG指令不同,ENV值始终保留在构建的图像中。
ARG变量不会像ENV变量那样持久存储到构建的图像中。
可以通过将参数存储在某个地方来保持参数,最简单的地方是环境变量。
RUN
子图片中的所有IMAGE_USER
步骤都可以访问其环境中的{{1}}。