在 docker 构建时显示帮助消息

sci*_*cho 9 docker docker-build

我正在构建一个 Dockerfile,我想在构建它时显示一些帮助消息。

我也尝试过,RUN echo "installing this"但正如预期的那样,它不起作用。

那么,如何docker build在安静模式下运行命令时显示帮助消息以及如果可能的话。

小智 16

我在 docker build 时遇到了类似的问题,其中RUN echo显示了命令。我能够通过修改构建命令来修复它

docker build -t hello-world ./ --progress=plain --no-cache

这里重要的是--progress=plain选项,因为 docker 默认auto隐藏太多输出。该--no-cache选项是重建容器以显示所有输出所必需的。


Eri*_*kMD 4

先验RUN echo "installing this"应该起作用并显示一些东西。然而,让一个RUN层只有一个 echo 命令会有些不好的做法。

\n\n

事实上,正如dev-best-practices页面中提到的:

\n\n
\n

如果您需要使用不包含多阶段构建的 Docker 版本,请尝试通过最小化 Dockerfile 中单独RUN命令的数量来减少映像中的层数。您可以通过将多个命令合并到一行中RUN并使用 shell\xe2\x80\x99s 机制将它们组合在一起来完成此操作。

\n
\n\n

对于其他相关建议,还有一个页面dockerfile_best-practices

\n\n

对于您在问题中提到的用例,您可以写

\n\n
RUN echo "install this" && command that install this...\n
Run Code Online (Sandbox Code Playgroud)\n\n

或者也许只是

\n\n
RUN set -x && command that install this...\n
Run Code Online (Sandbox Code Playgroud)\n\n

自动显示 期间运行的命令docker build

\n\n

但如果你使用docker build --quiet选项,我不确定是否可以实现你想要的。

\n\n

因此,如果您确实想在显示特定信息消息时拥有一些简洁/安静的构建日志,您可以尝试删除docker build\ 的--quiet选项,但set -x与重定向结合使用,例如command that install this >/dev/null.

\n