aws / aws/containers-roadmap

[ECR Public] [request]: cross-repository blob mounts failing?

Open
#1,459 5 comments 6 reactions 0 assignees View on GitHub
ECR ECR Public Proposed
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.