joeforker
joeforker

Reputation: 41747

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?

Upvotes: 127

Views: 46734

Answers (3)

tgogos
tgogos

Reputation: 25152

Have you tried --progress=plain?

Example:

  • Dockerfile

    FROM alpine
    RUN ps aux
    
  • build command:

    DOCKER_BUILDKIT=1 docker build --progress=plain -t test_buildkit .
    

Relative output:

#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

Upvotes: 187

BMitch
BMitch

Reputation: 263597

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.

Upvotes: 6

Cocowalla
Cocowalla

Reputation: 14331

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.

Upvotes: 140

Related Questions