【问题标题】:displaying help messages while docker build在 docker build 时显示帮助消息
【发布时间】:2019-03-25 17:21:23
【问题描述】:

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

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

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

【问题讨论】:

    标签: docker docker-build


    【解决方案1】:

    在显示RUN echo 命令的情况下,我遇到了与 docker build 类似的问题。我能够通过将构建命令修改为来修复它

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

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

    【讨论】:

      【解决方案2】:

      先验RUN echo "installing this" 应该可以工作并显示一些东西。但是,只有一个 echo 命令的 RUN 层会有点不好。

      确实如页面dev-best-practices中所述:

      如果您需要使用不包含 多阶段构建,尝试通过以下方式减少图像中的层数 尽量减少 Dockerfile 中单独的 RUN 命令的数量。你 可以通过将多个命令合并到单个 RUN 行中来做到这一点 并使用 shell 的机制将它们组合在一起。

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

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

      RUN echo "install this" && command that install this...
      

      或者只是

      RUN set -x && command that install this...
      

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

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

      因此,如果您真的想在显示特定信息消息时获得一些简洁/安静的构建日志,您可以尝试删除docker build--quiet 选项,但将set -xcommand that install this >/dev/null 等重定向结合起来。

      【讨论】:

      • 谢谢!即使我无法删除docker build 显示的消息,使用set -x 突出显示我的命令(红色。我不知道它是否适用于所有系统),所以这个解决方案有效!跨度>
      • @scipsycho 我很高兴建议的解决方案对您有用。关于您得到的红色:它不是特定于set -x,而是docker build 默认打印的标准错误消息。因此,如果你用RUN echo error >&2 编译Dockerfile,你也会得到一些红色的输出。
      • 顺便说一句,假设设置了set -x,每个执行命令的名称前的提示符由特殊变量PS4定义,如果需要可以自定义。
      • 感谢您告诉我有关 PS4 的信息。学到了新东西!
      猜你喜欢
      • 2016-01-01
      • 2015-07-26
      • 1970-01-01
      • 2013-03-07
      • 1970-01-01
      • 1970-01-01
      • 2013-09-10
      • 2015-08-11
      • 1970-01-01
      相关资源
      最近更新 更多