-
Notifications
You must be signed in to change notification settings - Fork 856
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-upstream
Before copy
ver4a@laptop:~$ skopeo inspect containers-storage:quay.io/fedora-ostree-desktops/kinoite:42 --raw | jq | wc -l
537
After copy
ver4a@laptop:~$ skopeo inspect docker://registry.uncontrol.me/ver4a/onc-kde:42-upstream --raw | jq | wc -l
345
When 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).