[Feature] Show progress of image push on `docker buildx build ... --push ... `
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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