publish: parallelize image copy and add phase observability for --app
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 38.2k
- Forks
- 5.8k
- Avg merge
- 2d 14h
- Merged PRs (30d)
- 55
Description
Description
Two related improvements to docker compose publish when using --app:
1. Parallel + deduplicated image copy
Currently oci.Copy is called serially per service. On large stacks this is slow,
and services sharing the same image trigger duplicate copies.
Proposed: dedupe by normalized image reference, then copy concurrently with bounded
parallelism (default 4), sorting descriptors deterministically after completion.
2. Phase observability
Currently publish only emits "publishing" / "published" events. When it fails,
there's no visibility into which phase failed or how long each phase took.
Proposed: emit structured events per phase (prechecks, push-images, create-layers,
push-manifest, copy-images, push-index) with elapsed time and counts.
Does this approach make sense?
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
Begin at the docker compose publish --app entry point and the oci.Copy call sites; trace the existing publish phases and event emission before deciding where the proposed boundaries fit. Done means image references are deduplicated and copied with bounded concurrency, descriptors are deterministic, and each listed phase reports elapsed time and counts.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, go
- Domain
- cli, devops
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100