containers / skopeo

Work with remote images registries - retrieving information, images, signing content
Apache License 2.0
8.03k stars 766 forks source link

Copying multiarch images from docker to gitlab does not appear to work #2094

Closed aliounis closed 1 year ago

aliounis commented 1 year ago

When copying a multiarch image from docker to gitlab using the --all (or --multi-arch all) option the pushed image is unusable on the gitlab side. I am not certain if this is an issue with skopeo or an issue with gitlab. I have tried with and without --preserve-digests.

To reproduce:

  1. Make (or use an existing) repository on gitlab
  2. skopeo login to registry.gitlab.com
  3. skopeo copy docker://docker.io/ubuntu:latest docker://registry.gitlab.com/aliounis/test_skcopy/ubuntu:latest --all
  4. Check the pushed image on gitlab and see that it is invalid (see below screenshot)

image

I will note that it works fine to copy individual architectures of the images (for instance not using --all or using --override-arch)

skopeo version 1.13.3 (installed with homebrew)

mtrmac commented 1 year ago

Thanks for reaching out.

AFAICS, per skopeo inspect --raw docker://registry.gitlab.com/aliounis/test_skcopy/ubuntu:latest, the manifest is has been uploaded correctly; and I can download that image back, including all architectures.

So, as far as the registry is concerned, the image seems to be correctly copied; this seems to be a problem in some higher GitLab layer (maybe the web UI, or their database) — so it probably must be resolved in GitLab.

aliounis commented 1 year ago

Ok, thanks, when I saw the error I didn't think to try pulling anyway, but I can confirm that pulling works despite the error in the UI. I'll close and submit a ticket to gitlab.