Hendrik, thank you really, really much! I'm also building multiarch manifests right now (without scopeo) and was wondering about something very similar. I spent 5 hours yesterday to come up with a way to reference local images in my manifest and consulted the podman documentation on "Destinations" which only speaks of dir, archive, daemon and remote as valid reference "transports". I got lost there and tried to build a work-around with the podman system service although I really couldn't believe that there is no transport for the local image storage. With your email suddenly arriving at my inbox it solved a lot of my headache! Thank you for that! Apart from that I've noticed another annoying thing, which might actually be a bug and I'm wondering if that's something I should open up in podmans or buildahs issue tracker. If I create a manifest with podman manifest create and add images with container-storage:image-ref I can successfully add the (locally build; localhost/) images to the manifest but from that point on podman images will crash with an error that the label for said local images couldn't be retrieved and that I should remove the "empty" manifests first. They are perfectly fine though, verified with an podman manifest inspect. Also in the past I usually did a podman pull on all images for the manifest first and a push --all. Now it occurs to me that this only worked so far, because the images were actually present at a remote location, or is this some kind of a recent regression? Another bit from my work on this: it's a bit confusing if I reference a local image in podman manifest add (like localhost/just-build:latest) and it immediately tries to find the registry localhost instead of first looking if it's already present in the local storage. Since container-storage is nowhere mentioned in the podman documentation it drove me crazy actually. A minor thing: why is it called container-storage if it actually allows access to the local image-storage?
Hendrik Haddorp <hendrik.haddorp@gmx.net> hat am 11.12.2020 23:36 geschrieben:
I found https://github.com/containers/skopeo/pull/1032 which pointed me to buildah and with that I found some steps that worked for me:
skopeo --override-arch amd64 copy docker://docker.io/library/busybox:1.32 containers-storage:busybox:1.32-amd64 skopeo --override-arch s390x copy docker://docker.io/library/busybox:1.32 containers-storage:busybox:1.32-s390x buildah manifest create busybox-multi:1.32 buildah manifest add busybox-multi:1.32 containers-storage:docker.io/library/busybox:1.32-amd64 buildah manifest add busybox-multi:1.32 containers-storage:docker.io/library/busybox:1.32-s390x buildah manifest push --all busybox-multi:1.32 docker://my-registry.com/busybox-multi:1.32
still feels a bit complicated. when using the docker transport for the "add" calls (buildah manifest add --arch s390x busybox-multi:1.32 docker://docker.io/library/busybox:1.32) things didn't work for me as the manifest list always ended up with just the last image pulled.
Since podman has the same commands I thought it should work in the same way but it didn't work more me.
After that I tried to export the multi arch image as an oci-archive. That works if the source is using the transport "docker" but failed if using "containers-storage".
On 12/11/20 7:21 PM, Hendrik Haddorp wrote:
Hi,
I'm trying to create a manifest list, so a multi arch image. I started by using skopeo to copy busybox:1.32 for two different architectures to my local container storage. I gave them locally different tags. After that I tried to create a manifest list using "podman manifest list". The first issue I noticed is that http://docs.podman.io/en/latest/markdown/podman-manifest-create.1.html shows a different syntax to what I get in podman 2.1.1 as I can not specify more then one image in the command. Anyhow, so I first create the list with the first image and then use "podman manifest add" to add the second image. Doing a "podman images" command I see that my manifest list image size increased a bit but is still just a few KB. pushing the manifest list now results in a failure. Should those commands work or am I missing something? I would also have expected that I can create the manifest list with skopeo, ideally as part of a copy call, but I didn't find anything on that in skopeo. Is there a better approach for combining multiple images to one?
thanks, Hendrik _______________________________________________ Podman mailing list -- podman@lists.podman.io To unsubscribe send an email to podman-leave@lists.podman.io
Podman mailing list -- podman@lists.podman.io To unsubscribe send an email to podman-leave@lists.podman.io