在Docker构建中打印ARG值

8

有没有一种方法可以打印通过--build-arg标志传递给docker build命令的ARG的值?

仅使用RUN echo $ARG_NAME是不够的,因为我希望在FROM部分之前打印它,但那里是不允许的。

关键是要立即查看这些值,以便可以快速停止构建,防止下载错误的基础映像。

已经搜索了docker文档和谷歌,也许这里有人可以解答。

2个回答

11

您可以使用多阶段构建,其中第一阶段仅用于诊断,其他情况完全被忽略。

FROM busybox
ARG ARG_NAME
RUN echo $ARG_NAME

FROM python:3.8
ARG ARG_NAME
...
CMD ["my_app"]

请注意,Docker层缓存可能会导致RUN步骤被完全跳过,因此即使如此也无法保证100%可靠。


好主意!跳过问题可以通过标志 docker build --no-cache . 来解决。 - RoBeaToZ

0

谢谢回答:)。我知道这一点。这就是为什么我提到我不能使用 RUN echo....。我想知道是否有其他方法/解决方法,也许是某种详细级别... - yair
2
抱歉,Dockerfile 不能以 FROM 指令开头,因为可以将基础镜像作为构建变量传递。在这种情况下,Dockerfile 将以 ARG VARNAME 开始,然后是 FROM VARNAME。https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact - breakthewall

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