有没有办法在构建容器时增加docker中的日志大小?

pb3s4cty  于 2023-03-07  发布在  Docker
关注(0)|答案(7)|浏览(180)

在构建时的输出中,我得到了以下消息:
[output clipped, log limit 1MiB reached]
从命令
docker build --progress plain .
我目前的解决方法是将dockerfile中的RUN命令的较大部分通过管道传输到/dev/null,即

RUN \
 echo "**** install packages ****" && \
 apt-get update && \
 apt-get install -y libcairo2-dev libjpeg-turbo8-dev libpng-dev libtool-bin libossp-uuid-dev wget maven default-jdk > /dev/null
xqnpmsa8

xqnpmsa81#

有了“卢克·德卢西亚”提供的关键链接,这对我很有效。

docker buildx create --use --name larger_log --driver-opt env.BUILDKIT_STEP_LOG_MAX_SIZE=50000000
docker buildx build --progress plain .

这将创建一个buildx示例,并将buildx设置为在构建时使用该示例。这不会在构建过程中剪辑日志。

jaql4c8m

jaql4c8m2#

另一个解决方案是针对docker buildx的,但有些人可能希望用DOCKER_BUILDKIT=1来修复docker build

# cat /etc/systemd/system/docker.service.d/env.conf 
[Service]
Environment="BUILDKIT_STEP_LOG_MAX_SIZE=1073741824" # you might want to tweak this
Environment="BUILDKIT_STEP_LOG_MAX_SPEED=10240000"

然后:

systemctl daemon-reload
systemctl restart docker.service
qgzx9mmu

qgzx9mmu3#

是在WSL2的docker上,buildx的解决方案不知怎么就不起作用了。
但是禁用buildkit并将输出通过管道传输到一个文件中对我很有效
所以在bash shell中这样做对我很有效:

export DOCKER_BUILDKIT=0
docker build --progress plain ./ > logoutput.txt
ttygqcqt

ttygqcqt4#

对于窗口:
在cmd中运行以下命令:

set DOCKER_BUILDKIT=0

并重新启动Docker桌面

2uluyalo

2uluyalo5#

这个答案完成@AlexanderSergeyev答案的。
这对我来说在Ubuntu 20.04上不起作用,因为/etc/systemd/system/docker.service.d文件夹不存在。
还有我的Docker版本

Docker version 20.10.6, build 370c289

我不得不这样做:

sudo vim /etc/systemd/system/multi-user.target.wants/docker.service

然后在[Service]标记下,放置以下代码行:

Environment="BUILDKIT_STEP_LOG_MAX_SIZE=1073741824"
Environment="BUILDKIT_STEP_LOG_MAX_SPEED=10240000"

然后重新启动Docker守护程序:

systemctl daemon-reload
systemctl restart docker.service
x33g5p2x

x33g5p2x6#

Windows 11,Docker桌面,Docker版本20.10.17。
要关闭BUildKIT,请在Docker桌面设置中,在左侧的“Docker Engine”下,如果存在如下json块:

"features": {
    "buildkit": true
  }

将其更改为false。如果features块不存在,则它应该在根{下,使用"buildkit": false添加它。

3bygqnnd

3bygqnnd7#

根据the source,使用两个变量的-1值可以完全消除任何限制:

$ docker buildx create --bootstrap --use --name buildkit \
    --driver-opt env.BUILDKIT_STEP_LOG_MAX_SIZE=-1 \
    --driver-opt env.BUILDKIT_STEP_LOG_MAX_SPEED=-1
$ docker buildx build --progress plain .

相关问题