linux 如何在构建过程中打印Dockerfile中链式命令行的每个命令?

hec6srdp  于 12个月前  发布在  Linux
关注(0)|答案(1)|浏览(126)

Dockerfile中,我将多个命令链接到一个RUN中,这是常见的做法:

RUN cmd1 && cmd2 && cmd3 && ...

字符串
当调用docker build时,它会打印整行cmd1 && cmd2 && ...,然后执行它。当一切正常时,这很好;但是,当出现错误消息时,有时不清楚是哪个命令打印的。
有没有一种方法可以在不同的命令执行时打印出来,这样错误的来源就变得明显了?
我正在寻找Linux和Windows容器的解决方案。

dz6r00yl

dz6r00yl1#

你可以这样做:

FROM debian
SHELL ["/bin/bash", "-c"]
RUN echoRun(){ echo "$@"; "$@"; } &&\
    echoRun date &&\
    echoRun sleep 2 &&\
    echoRun false &&\
    echoRun date

字符串
然后用以下方式构建:

DOCKER_BUILDKIT=0 docker build -t test .


我不太确定Windows容器。

相关问题