在 docker build 中打印 ARG 值

yai*_*air 8 docker docker-build

有没有办法打印ARGs 值,这些值通过标志传递--build-argdocker build命令?

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

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

已经搜索了 docker docs 和 google。也许这里有人可以提供一些线索。

Dav*_*aze 11

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

FROM busybox
ARG ARG_NAME
RUN echo $ARG_NAME

FROM python:3.8
ARG ARG_NAME
...
CMD ["my_app"]
Run Code Online (Sandbox Code Playgroud)

请注意,Docker 层缓存可能会导致RUN步骤被完全跳过,因此即使这样也不是 100% 可靠。


RoB*_*ToZ 0

这不可能

Dockerfile 必须以FROM指令开头

请参阅https://docs.docker.com/engine/reference/builder/

RUN命令的执行将在必须创建图像的中间容器中执行。

  • 抱歉,Dockerfile 可能不会以 FROM 指令开头,因为可以将基础映像作为构建变量传递。在这种情况下,Dockerfile 将以 ARG VARNAME 开头,然后是 FROM VARNAME。https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact (2认同)