是否可以暂停 Docker 图像构建?

Is it possible to pause a Docker image build?

我在构建图像时有时会收到警告或非致命错误。例如,如果我在 Docker 图像中编译一些程序,但缺少一些可选库,则会打印警告。

但是,如果图像不断构建,则很难检索消息,因为终端不断向下滚动,并且在某些时候,它太高而无法阅读。

是否可以暂停 Docker 图像或以其他方式检索这些错误消息而不是输出到文件(这可能会丢失终端的着色)?

Is it possible to pause a Docker image

不,您不能暂停 docker build 命令。


您可以尝试 Scroll Lock 键,但可能会失败,具体取决于您的终端。


您可以将 docker build 命令的结果通过管道传递给 less -R:

docker build -t test . | less -R

建好后,可以使用方向键上下移动,使用/搜索test,etc.

-R是保持颜色

-r  -R  ....  --raw-control-chars  --RAW-CONTROL-
                Output "raw" control characters.

您也可以将输出记录到文件中(我知道您明确表示您不想要此解决方案,但它可能适合其他人):

docker build -t test . | tee build.log

虽然我知道您不希望将退出代码传输到文​​件,但我可以向您保证着色不会丢失。

我用来传递错误的简单代码,例如信息和致命错误,

docker build $(pwd) 2>> error

将传输阻止其将图像构建到错误文件中的任何错误。

文件 cat 后,错误的颜色代码仍然存在。 Typically my aim for this is to use these errors in order to build a docker image that can build itself from these errors.

我知道如果您想暂停 docker 构建,您可以使用 ^c(控制 c)取消它,这将在 window 中终止活动进程.当然,您将无法取消暂停。

我得到的这些解决方案不是您要找的,但这是我目前知道的唯一方法,可以满足您的要求。