moby / moby/buildkit

[Feature] Show progress of image push on `docker buildx build ... --push ... `

Open
#3,192 2 comments 6 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
10.3k
Forks
1.5k
Avg merge
1d 21h
Merged PRs (30d)
50

Description

Originally posted at: https://github.com/docker/buildx/issues/1336 but requested to move here.

Problem:

I built some relatively large images for two different architectures (~6GB each) using docker buildx build and are using --push to push them up to the repository at the same time.

Since they are large, they take a while, so I'm sitting looking at a console of:

...
=> CACHED [linux/arm64 15/16] RUN set -eux     && echo "Removing osxcross temp files..."     && rm -rf *~ taballs *.tar.xz     && rm -rf /tmp/*     && true                                                                                  0.0s
 => CACHED [linux/arm64 16/16] WORKDIR /root/src                                                                                                                                                                                              0.0s
 => exporting to image                                                                                                                                                                                                                      487.5s
 => => exporting layers                                                                                                                                                                                                                       0.0s
 => => exporting manifest sha256:b768869a6c74185511097ff0b99ffb690e844903b054bebcc1a5e1de3f2867e3                                                                                                                                             0.0s
 => => exporting config sha256:ef462828ba6074f22fb73e0db79530b602cd73399a24ad22e50317dce6a11ce7                                                                                                                                               0.0s
 => => exporting manifest sha256:605c77a7d7e61c443a78662826028fdd9f83e65ce4cb5a644e093c1d5e2d7f55                                                                                                                                             0.0s
 => => exporting config sha256:f198b33268c0468709559f4642ac3ef2866d1b850dc0c508f6c984ee67c1ac81                                                                                                                                               0.0s
 => => exporting manifest list sha256:0b83f2a82214d7a1a57999304b41b6ebc683fe039743ee0a3997d328a258714f                                                                                                                                        0.0s
 => => pushing layers                                                                                                                                                                                                                       487.4s
 => [auth] nnnn/release/rust-linux-darwin-builder:pull,push token for us-docker.pkg.dev       

That has not moved in around 10 minutes, which is not surprising. But it's hard for me to tell if it's hung or if it's just taking a while, as well as how close to completion it is.

I'd also wondered if it had got stuck at the auth step to be honest.

Proposed Solution:

Have some kind of progress meter display when pushing images, ideally with some kind an indication of % complete, or at least number of layers to go up. docker push does this nicely.

Ideally, would be lovely if it had an estimated time to completion as well 😃

Workarounds:

Only option I have so far - run btop and watch my upload network traffic to see if it's being actively pushed.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the docker buildx build --push output around exporting layers, manifests, configs, and the auth step. Compare the existing progress behavior of docker push; done should provide visible push progress, such as layer counts or percentages, while making stalled authentication or uploads distinguishable.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, go
Domain
build-system, cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.