在构建过程中如何从 docker 文件打印到控制台?

Mat*_* C. 51 docker

假设您有一些 Dockerfile。需要向该文件添加什么,以便在构建期间将字符串(即“Hello World”)打印到控制台?

docker build .

研究

这个问题是 Google 中该主题的热门问题。我通过谷歌搜索并登陆这里进行了研究。

我已经尝试过的

从接受的答案来看:

RUN echo "hello there"
Run Code Online (Sandbox Code Playgroud)

这实际上是行不通的。

Noa*_*eli 82

实际上相当简单。如果您只想打印构建过程中使用的内容,您只需将以下行添加到 Dockerfile 中即可:

RUN echo "hello there"
Run Code Online (Sandbox Code Playgroud)

然后将这些选项添加到您的docker build命令中:

--progress=plain --no-cache
Run Code Online (Sandbox Code Playgroud)

编辑:

正如 @SoftwareEngineer 所指出的,当用于日志记录或工具目的时,您应该将 echo 命令附加到您想要检查是否成功的命令中。例如,当下载包并希望在完成后获得打印语句时: 来自 nginx 官方镜像 dockerfile 的示例

RUN apt-get install -y whatever && echo "installed package"
Run Code Online (Sandbox Code Playgroud)

  • 抱歉,我应该说得更清楚一点。我的反对意见是在它自己的“RUN”命令中运行它并创建一个额外的层只是为了产生输出。出于调试和审计目的,生成日志输出本质上没有问题。我只是不建议以这种特定方式进行操作。 (4认同)
  • --progress=plain --no-cache 是关键。 (3认同)