alphabet5
alphabet5

Reputation: 1152

Is there a way to increase the log size in docker when building a container?

In the output when building, I am getting this message:

[output clipped, log limit 1MiB reached]

from the command

docker build --progress plain .

The current workaround I have is to pipe larger sections of the RUN command in the dockerfile to /dev/null i.e.

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

Upvotes: 52

Views: 33049

Answers (9)

Suk
Suk

Reputation: 1

To complete @AlexanderSergeyev response (works for me on gentoo distribution):

Some might want a fix for docker build with DOCKER_BUILDKIT=1.

mkdir -p /etc/systemd/system/docker.service.d
cat > /etc/systemd/system/docker.service.d/env.conf <<EOF
[Service]
Environment="BUILDKIT_STEP_LOG_MAX_SIZE=1073741824" # you might want to tweak this
Environment="BUILDKIT_STEP_LOG_MAX_SPEED=10240000"
EOF
systemctl daemon-reload
systemctl restart docker.service

Upvotes: 0

mirekphd
mirekphd

Reputation: 6781

The quickest and least invasive workaround (with no docker daemon restart required) is to temporarily switch off Docker Buildkit with the DOCKER_BUILDKIT env var.:

export DOCKER_BUILDKIT=0 && docker build --tag latestml/test:latest .

Upvotes: 0

reddot
reddot

Reputation: 985

According to the source it's possible to completely eliminate any limitations using -1 value for both variables:

$ 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 .

Upvotes: 1

chad
chad

Reputation: 2946

Windows 11, Docker Desktop, Docker version 20.10.17.

To turn off BUILDKIT, in the Docker Desktop settings, under "Docker Engine" on the left side, if there's a json block like:

  "features": {
    "buildkit": true
  }

change it to false. If the features block isn't there, it should be under the root {, add it with "buildkit": false.

Upvotes: 2

Khaled Ahmed Sobhy
Khaled Ahmed Sobhy

Reputation: 357

for windows:

in cmd run the command:

set DOCKER_BUILDKIT=0

and restart docker desktop

Upvotes: 1

Ankhas
Ankhas

Reputation: 43

This answer to complete @AlexanderSergeyev answer's.

This was not working for me on Ubuntu 20.04 because /etc/systemd/system/docker.service.d folder does not exists.

Also, my Docker version is

Docker version 20.10.6, build 370c289

I have to do this instead:

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

Then under the [Service] tag, put those lines:

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

And then restart docker daemon:

systemctl daemon-reload
systemctl restart docker.service

Upvotes: 4

PeterT
PeterT

Reputation: 8284

Was on WSL2 docker. The buildx solution somehow didn't work.

But disabling buildkit and piping the output into a file worked for me

So doing this in a bash shell worked for me:

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

Upvotes: 10

Alexander Sergeyev
Alexander Sergeyev

Reputation: 972

The other solution is for docker buildx, but some might want a fix for docker build with DOCKER_BUILDKIT=1. The following works for me on ubuntu18.04 and docker version 5:20.10.3~3-0~ubuntu-bionic.

# 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"

Then:

systemctl daemon-reload
systemctl restart docker.service

Upvotes: 10

alphabet5
alphabet5

Reputation: 1152

With the key link provided by @Luke Deluccia, this is what worked for me.

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

This creates a buildx instance, and sets buildx to use the instance when building. This did not clip the logs during the build process.

Upvotes: 32

Related Questions