[ECR Public] [request]: cross-repository blob mounts failing?
- Dominant language
- Shell
- Stars
- 5.4k
- Forks
- 334
- PR merge metrics
- No merged PRs in 30d
Description
### Community Note
* Please vote on this issue by adding a 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original issue to help the community and maintainers prioritize this request
* Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
* If you are interested in working on this issue or have submitted a pull request, please leave a comment
**Tell us about your request**
I filed an issue on @estesp's `manifest-tool` at https://github.com/estesp/manifest-tool/issues/124, but in testing further, even `docker manifest` fails to successfully create the cross-repository manifest lists, so I believe this is something deeper.
As seen in my latest comment there, the short version is that:
`docker manifest create public.ecr.aws/debian/debian:bullseye public.ecr.aws/debian/amd64:bullseye public.ecr.aws/debian/armel:bullseye public.ecr.aws/debian/armhf:bullseye public.ecr.aws/debian/arm64:bullseye public.ecr.aws/debian/i386:bullseye public.ecr.aws/debian/mips64el:bullseye public.ecr.aws/debian/ppc64el:bullseye public.ecr.aws/debian/s390x:bullseye`
followed by:
`docker manifest push public.ecr.aws/debian/debian:bullseye`
leads to:
`error mounting debian/amd64@sha256:4c0bfd2a9f4e90b5a07958f07d71b2e2ea5a965649c92bf35822aece72a29c6b to public.ecr.aws/debian/debian:bullseye`
**Which service(s) is this request for?**
ECR Public
**Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?**
At a high level, I have per-architecture images pushed to each of `public.ecr.aws/debian/amd64`, `public.ecr.aws/debian/armel`, etc, and I want to push the combined manifest lists to `public.ecr.aws/debian/debian`. Functionally, this means the clients creating the manifest list have to do [cross-repository blob mounts](https://github.com/opencontainers/distribution-spec/blob/v1.0.0/spec.md#mounting-a-blob-from-another-repository), but for some reason that doesn't seem to be working properly in any of the three tools I've tested (which I use to do exactly this successfully against other registries).
**Are you currently working around this issue?**
I was hoping `docker manifest` would be my workaround, but it looks like I'm going to have to go as far as using containerd to do push-by-digest of all the per-arch images instead. :disappointed:
cc @samuelkarp
Contributor guide
Research direction
Start by reproducing the listed docker manifest create and docker manifest push commands against ECR Public, then compare the behavior with manifest-tool issue #124 and the OCI distribution-spec blob-mounting section. Done means cross-repository blob mounts work when combining the per-architecture repositories into the target manifest list without the reported mounting error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker
- Domain
- cloud
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100