-
Notifications
You must be signed in to change notification settings - Fork 908
Description
OS: Fedora Kinoite (with layers) 42.20250816.0
skopeo: 1.19.0/1.20.0 (rootless)
the image I'm copying is unmodified quay.io/fedora-ostree-desktops/kinoite:42
Problem: layers.annotations are dropped and digest changes on skopeo copy from containers-storage: to docker://, a direct copy from docker:// to docker:// preserves both annotations and layer digests.
If I copy an image containing layers with "annotations", their digest changes and "annotations" is removed
skopeo copy containers-storage:quay.io/fedora-ostree-desktops/kinoite:42 docker://registry.uncontrol.me/ver4a/onc-kde:42-upstreamBefore copy
ver4a@laptop:~$ skopeo inspect containers-storage:quay.io/fedora-ostree-desktops/kinoite:42 --raw | jq | wc -l
537After copy
ver4a@laptop:~$ skopeo inspect docker://registry.uncontrol.me/ver4a/onc-kde:42-upstream --raw | jq | wc -l
345When I try the same copy with --preserve-digests, I get this error
ver4a@laptop:~$ skopeo copy --preserve-digests containers-storage:quay.io/fedora-ostree-desktops/kinoite:42 docker://registry.uncontrol.me/ver4a/onc-kde:42-upstream
Getting image source signatures
FATA[0000] Copying this image would require changing layer representation, which we cannot do: "Instructed to preserve digests"Here's a debug log with the first line containing environment removed copy-preserve-log.txt
The use case this breaks for me now is bootc upgrade/switch, bootc versions before 1.4.0 don't fail with this metadata disappearing, but newer versions do with an error error: Switching: Pulling: Importing: Unencapsulating base: serialization error: invalid value: integer -1, expected u64 (I know that's related to a different repo, i put it here mainly for search engine indexing in case someone else hits it).