有没有办法使用父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
最佳答案
Build arguments不会保留在图像中,因此它们在父图像的构建中不可用.
Unlike an ARG instruction,ENV values are always persisted in the built image.
ARG variables are not persisted into the built image as ENV variables are.
参数可以通过将它们存储在某个地方来保持,最简单的地方是在环境变量中.
ARG IMAGE_USER=jenkins
ENV IMAGE_USER=$IMAGE_USER
然后,子图像中的所有RUN步骤都可以访问其环境中的IMAGE_USER.