Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

When using BuildKit with Docker, how do I see the output of RUN commands?

When building Docker images with DOCKER_BUILDKIT=1, there is a very cool progress indicator but no command output. How do I see the command output to debug my build?

like image 663
joeforker Avatar asked Apr 19 '19 03:04

joeforker


3 Answers

Have you tried --progress=plain?

Example:

FROM alpine
RUN ps aux

Relative output of DOCKER_BUILDKIT=1 docker build --progress=plain -t test_buildkit .:

#5 [2/2] RUN ps aux
#5       digest: sha256:e2e4ae1e7db9bc398cbcb5b0e93b137795913d2b626babb0f148a60017379d86
#5         name: "[2/2] RUN ps aux"
#5      started: 2019-04-19 09:02:58.922035874 +0000 UTC
#5 0.693 PID   USER     TIME  COMMAND
#5 0.693     1 root      0:00 ps aux
#5    completed: 2019-04-19 09:02:59.721490002 +0000 UTC
#5     duration: 799.454128ms

👉 Also, check the very useful answer by @Cocowalla below about BUILDKIT_PROGRESS=plain

like image 105
tgogos Avatar answered Sep 29 '22 11:09

tgogos


As well as using --progress=plain on the command line, you can also set an environment variable:

BUILDKIT_PROGRESS=plain

I find this particularly useful for CI builds, where I always want the full log.

like image 104
Cocowalla Avatar answered Sep 29 '22 13:09

Cocowalla


With PR #2954 you can specify:

export NO_COLOR=1

There have also been changes in recent versions to make the defaults more readable.

You can pick your own color scheme with the BUILDKIT_COLORS variable, e.g.:

export BUILDKIT_COLORS=run=123,20,245:error=yellow:cancel=blue:warning=white

(Note, if the above doesn't work for you, then that PR likely hasn't made it into your Desktop install yet.)

Other options to solve this include switching to plain output with either the --progress=plain option or export BUILDKIT_PROGRESS=plain. Or you could disable buildkit with export DOCKER_BUILDKIT=0.

like image 1
BMitch Avatar answered Sep 29 '22 13:09

BMitch