构建图像时,我有时会收到警告或非致命错误。例如,如果我在Docker镜像中编译某个程序,但缺少某个可选库,则会打印一条警告。
但是如果图像不断构建,则消息难以检索,因为终端会继续向下滚动,在某些时候,它太高而无法读取。
是否可以暂停Docker镜像或以其他方式检索这些错误消息,而不是输出到文件(可能会丢失终端的颜色)?
答案 0 :(得分:3)
是否可以暂停Docker镜像
不,你不能暂停docker build
命令。
你可以试试 Scroll Lock 键,但取决于你的终端可能会失败。
您可以将docker build
命令的结果传递给less -R
:
docker build -t test . | less -R
构建完成后,您可以使用箭头键上下移动,使用/
搜索测试etc。
-R
是保持颜色
-r -R .... --raw-control-chars --RAW-CONTROL- Output "raw" control characters.
此外,您可以将输出录制到文件(我知道您明确表示您不想要此解决方案,但它可以适合其他人):
docker build -t test . | tee build.log
答案 1 :(得分:0)
虽然我明白你宁愿不喜欢将退出代码传输到文件中,但我可以向你保证着色不会丢失。
我用来传递错误的简单代码,例如信息和致命错误
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 build,你可以说使用^c
(control c)取消它,这将终止窗口中的活动进程。当然,你无法取消它。
我觉得这些解决方案不是你想要的,但它是我目前所知道的唯一方式,以便做你想做的事。