-
Notifications
You must be signed in to change notification settings - Fork 320
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ECR: support manifest lists #505
Comments
I strongly support this. The amount of use cases we are blocked by the lack of manifest support when using cache images, is affecting so many developers |
This lack of support is actually blocking us from adopting Buildkit, since it prevents properly caching in that scenario. |
We had to switch to self-hosted registry:2 because we needed to store multi-arch images. Incidentally we needed it because we wanted to use AWS new |
would be great to see that on the roadmap. 🥇 |
This would be huge advantage for ECR to support buildkit pulling caching from the registry |
Looking forward to this. |
This is rolling out now and ready to use in most regions. We'll publish a formal announcement shortly with some more reading. In the meantime, docs are updated and please let us know your feedback. |
Does AWS batch support multi-architecture compute environment in it's queue with this change? |
@nithinvenugopal I'll let you know. |
Shipped. Blog Announcement. |
I just tried this on
|
Hi @jsierles! Thanks for trying out the feature! I was not able to reproduce that error in my account. Could you provide us with some more information? Specifically:
|
Hi @michaelb990, I'm having the same error as @jsierles although I'm not sure if we're running the same command. Happy to provide some info from my perspective though. I'm running Buildkit via docker inside GitHub Actions. See https://gist.github.com/njdancer/c8fa02bff61e2b8047fefa5e68af1ee6 for logs. The logs aren't the cleanest I'm afraid so let me know if you need specific parts pulled out. Here the command though:
Just like @jsierles, I receive the following error:
I only just ran this in the last 15 minutes so approx. 08:55 UTC. I also don't believe docker manifest inspect will show anything as I don't believe Buildkit to be exporting this to dockers image store in the current setup. Given that this is running inside a container I believe you'd need some kind of DinD setup to get the manifest directly into docker. I believe GitHub Actions run inside Azure so I imagine this is just running over the internet, I guess there could be some peering but none that should make any difference AFAIK. Final point I would mention is that if I remove the import and export cache arguments from the command the image builds and pushes to ECR successfully. It is only when adding the cache options that this begins to fail. This usage is supported by Dockers official registry software also. |
I'm using
|
@jsierles err, are you sure?
Are you mean pushing the image works fine, but not the manifest? |
@bendavies Am I sure of what? When I said 'pushing' works, I meant pushing the image itself, not the cache. The 405 is an error that's previously been reported by people trying to use buildx against ECR and other hosted repositories. As @njdancer reports, this is supported by Docker Hub. |
I guess the problems with uploading the layer cache are because the cache is another different media-type, compared to the existing container manifests or mainfest lists. That's worth raising in #308, which asked the question:
Edit: Actually, looking at moby/buildkit#1143 the problem might be that buildkit's cache manifest-list uses a field that's not in the spec? |
Hi -- Thank you for reporting this. We are looking into it and will post an update when we have further information. |
I am also getting this:
|
I can confirm that pushing the cache is still not working on ECR using mode=max and --push (or even --load) failed to solve: rpc error: code = Unknown desc = error writing manifest blob: failed commit on ref "unexpected status: 405 Method Not Allowed |
Pushing image manifest lists to ECR works as expected for me. Using buildah (v1.14.8) and
|
Thanks again for all the comments! We have identified an issue with how we are parsing manifest lists and are working on a fix. We'll let you know when the fix is deployed. |
Hi @njdancer, i'm also trying to build a Docker image with Builkit and a command similar to the one you provided. As you explained the command pushes the Docker image to ECR correctly when I remove the I encounter a different error than yours when I have the
Do you encountered Erratum The line of code associated to my error is https://github.com/moby/buildkit/blob/bcc9df1d0ad2650b25e7e7b58f4732125028ac94/cache/remotecache/v1/utils.go#L151. As its not linked to Amazon ECR i'll post an issue in the Builkit Github repo directly. Thanks |
We have made some fixes to make the Closing this issue now that the manifest list fixes are deployed. Thanks!! |
Still not working for cache manifests specifically: #876 |
another year passed... |
And another! |
If you're waiting for BuildKit layer cache support, see #876, particularly the latest comment. This ticket was for Docker manifest lists (and OCI image indexes eventually too), and the existing BuildKit layer caching implementation didn't actually match the spec for manifest lists; this is actively being worked on. |
ECR should support manifest lists (https://docs.docker.com/registry/spec/manifest-v2-2/#manifest-list). This feature allows ECR customers to create and consume multi-architecture images more easily.
The text was updated successfully, but these errors were encountered: