Skip to content

skopeo 1.20.0 not copying layers.annotations when copying from containers-storage: to docker:// #2686

@ver4a

Description

@ver4a

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

beforecopy.txt

After copy

ver4a@laptop:~$ skopeo inspect docker://registry.uncontrol.me/ver4a/onc-kde:42-upstream --raw | jq | wc -l
345

aftercopy.txt

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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions