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
Support V2 Manifest Lists #45
Conversation
Docker image format becomes super-confusing. Manifest v1, Manifest v2 and now Manifest List v2 😐 Thanks, I will take a look shortly. |
Yes, the protocol keeps on expanding... However, multi-arch images are here to stay, even all the official images by Docker are using it since 2017: https://www.docker.com/blog/multi-arch-all-the-things/ |
I will merge it but I am thinking to make some more refactoring afterwards. |
@StarGate01 Hello, can you please try the latest release 0.9.0 if it works with your multi-arch / BuildX images? |
Everything seems to be in working order. Nice work! I like the addition of the "Manifest Formats" row. If you wanted to, you could include a specialcase for Cache Images, which are images that just have a v2 manifest list with special entries. As of now, they do not carry a creation date (thus the field in the image details section is empty), and the digests of their sub-manifests are not tags/manifests, but hashes of tarballs (check the
For example, a cache-type manifest list v2 begins like this:
Note the missing If you want to reproduce those types of images, you can use Docker BuildX, like this:
In conculsion, thank you for upstreaming the changes and keeping the repo up-to-date. I think you could leave it as-is, because cache images are a relatively novel edge-case, but if you want to you can implement support - I dont think it would be much work. If you want to, I could also implement it in a pull request. Edit: After theading the docs, it seems that regular manifests and cache manifests can be mixed together in a manifest list ( |
I understand what you mean. So we need to do 3 things:
I will try to do this until I forgot, you have probably seen my comments in README etc. about this mess with manifests. |
I would just hide the creation date if it is absent in the JSON (found in neither manifest), in that way we cover all cases where it could be absent.
Yes, that would be a useful information for the user.
Or you could do it the other way round and only display a link if the mediaType is
Definitely. The way docker keeps on expanding makes maintenance of tools rather hard. But that is the way of such a huge open source project, new needs arise and people implement them. Just like us. |
Agree on everything, thanks! |
Can you give |
Everything works as expected. Thank you for your continued effort! |
I implemented support for v2 manifest lists (https://docs.docker.com/engine/reference/commandline/manifest/).
This enables the proper display of multi-arch images, such as those generated by Docker BuildX or manually.
Tag view for multi-arch image:
Detail view of sub-image: