-
Notifications
You must be signed in to change notification settings - Fork 108
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
sync on-demand: docker pull
fails for OCI image index(application/vnd.oci.image.index.v1+json)
#2836
Comments
As I asked in #2811, what call is docker actually making to the zot server? Can you share more of the logs? |
docker pull
fails for OCI image index(application/vnd.oci.image.index.v1+json)
docker pull
fails for OCI image index(application/vnd.oci.image.index.v1+json)docker pull
fails for OCI image index(application/vnd.oci.image.index.v1+json)
we have an ECR registry and have configured Zot as a pull-through cache (on-demand). However, when attempting a docker pull through Zot for the following OCI manifest, the pull fails:
While docker pull directly from ECR works, the same operation through Zot fails. I do not believe this is a client-side issue. Below are relevant log messages for reference
This log line
indicates that /v2/appname/manifests/1590357999 was not in the accepted media types. However, the image manifest (as confirmed by the manifest inspect I shared earlier) shows that it is in one of the accepted media types. looks like an bug. still I didn't had a chance to review the code. |
Question is why it fails to get the image details. It is possible it fails to get the manifest from ecr (instead of having an issue with the manifest content)? Maybe it errors here https://github.com/project-zot/zot/blob/main/pkg/extensions/sync/remote.go#L132 ? |
I have verified the following:
|
The strange part is it fails before our checks for manifest media type value. |
@andaaron Thanks for linking the relevant code path. I will run a few more tests tomorrow and provide an update here. I appreciate your quick response—it’s really helpful! |
Some other limitation about the way sync works with multiarch at the moment:
There's a PR for replacing the libraries used for sync, but due to limited time on the part of the contributor, it has been dragging for a long time. |
Could you please share the PR link? I’ll give it a try with that branch |
This is the PR, but I don't think it's ready to be used at the moment: #2524 |
Hi @tamilhce, I have tried to reproduce this issue, with a more basic configuration (as I don't have access to ECR, and also the zot configuration was not provided in the bug description). I tried using 2 zot instances. 1st zot has the config:
2nd zot has the config:
I uploaded images to the 1st zot using: I checked the repo/image/tag is present on zot running on port 5000:
After that I pulled from the 2nd zot. |
I also tried using a build from your branch |
Hi @andaaron, |
Discussed in #2811
Originally posted by tamilhce November 28, 2024
I was running zot with following patch version https://github.com/tamilhce/zot/pull/13/ as a pull through for ECR
I have verified that some multi-arch images are working as expected, while others are not. Upon further investigation, I found that container multi-arch images with the type
application/vnd.oci.image.index.v1+json
(the OCI manifest list for multi-platform images) are not supported. Only multi-arch images with the Docker manifest format,application/vnd.docker.distribution.manifest.list.v2+json
(the Docker manifest list for multi-platform images), are supported.AWS ECR supports both the OCI and Docker manifest formats, whereas Zot only supports the multi-arch/image index of the Docker manifest format.
working -
application/vnd.docker.distribution.manifest.list.v2+json
Not working -
application/vnd.oci.image.index.v1+json
is this the expected behavior? If it's a bug, I will work on the feature. Looking forward to your valuable reply.
The text was updated successfully, but these errors were encountered: