[pkg-go] Bug#1033826: podman: Cannot load gzip compressed images
Antonio Cebrián
ancebfer at gmail.com
Sun Apr 2 11:46:29 BST 2023
Package: podman
Version: 4.3.1
Podman cannot load images compressed with gzip. Uncompressed images or
bzip2 compressed images work right therefore it seems to be a problem
related to gzip handling.
It seems to be the same problem reported here:
https://github.com/containers/podman/issues/15944
Tested under Bookworm with podman 4.3.1:
*$ podman image pull hello-world:latest*
Resolved "hello-world" as an alias
(/etc/containers/registries.conf.d/shortnames.conf)
Trying to pull docker.io/library/hello-world:latest...
Getting image source signatures
Copying blob 2db29710123e done
Copying config feb5d9fea6 done
Writing manifest to image destination
Storing signatures
feb5d9fea6a5e9606aa995e879d862b825965ba48de054caab5ef356dc6b3412
*$ podman image save hello-world:latest > hello-world.tar*
*$ podman image save hello-world:latest | gzip > hello-world.tar.gz*
*$ podman image save hello-world:latest | bzip2 > hello-world.tar.bz2*
*$ podman image load -i hello-world.tar*
Getting image source signatures
Copying blob e07ee1baac5f skipped: already exists
Copying config feb5d9fea6 done
Writing manifest to image destination
Storing signatures
Loaded image: docker.io/library/hello-world:latest
*$ podman image load -i hello-world.tar.gz*
Error: payload does not match any of the supported image formats:
* oci: initializing source oci:hello-world.tar.gz:: open
hello-world.tar.gz/index.json: not a directory
* oci-archive: loading index: open /var/tmp/oci3062655986/index.json:
no such file or directory
* docker-archive: loading tar component manifest.json: unexpected EOF
* dir: open hello-world.tar.gz/manifest.json: not a directory
*$ podman image load -i hello-world.tar.bz2*
Getting image source signatures
Copying blob e07ee1baac5f skipped: already exists
Copying config feb5d9fea6 done
Writing manifest to image destination
Storing signatures
Loaded image: docker.io/library/hello-world:latest
Attached you have the debug output of the failing command:
*$ podman --debug image load -i hello-world.tar.gz*
In Bullseye with podman 3.0.1 all works as expected:
*$ podman image pull hello-world:latest*
Resolved "hello-world" as an alias
(/etc/containers/registries.conf.d/shortnames.conf)
Trying to pull docker.io/library/hello-world:latest...
Getting image source signatures
Copying blob 2db29710123e done
Copying config feb5d9fea6 done
Writing manifest to image destination
Storing signatures
feb5d9fea6a5e9606aa995e879d862b825965ba48de054caab5ef356dc6b3412
*$ podman image save hello-world:latest > hello-world.tar*
Copying blob e07ee1baac5f done
Copying config feb5d9fea6 done
Writing manifest to image destination
Storing signatures
*$ podman image save hello-world:latest | gzip > hello-world.tar.gz*
Copying blob e07ee1baac5f done
Copying config feb5d9fea6 done
Writing manifest to image destination
Storing signatures
*$ podman image save hello-world:latest | bzip2 > hello-world.tar.bz2*
Copying blob e07ee1baac5f done
Copying config feb5d9fea6 done
Writing manifest to image destination
Storing signatures
*$ podman image load -i hello-world.tar*
Getting image source signatures
Copying blob e07ee1baac5f [--------------------------------------] 0.0b
/ 0.0b
Copying config feb5d9fea6 done
Writing manifest to image destination
Storing signatures
Loaded image(s): docker.io/library/hello-world:latest
*$ podman image load -i hello-world.tar.gz*
Getting image source signatures
Copying blob e07ee1baac5f skipped: already exists
Copying config feb5d9fea6 done
Writing manifest to image destination
Storing signatures
Loaded image(s): docker.io/library/hello-world:latest
*$ podman image load -i hello-world.tar.bz2*
Getting image source signatures
Copying blob e07ee1baac5f [--------------------------------------] 0.0b
/ 0.0b
Copying config feb5d9fea6 done
Writing manifest to image destination
Storing signatures
Loaded image(s): docker.io/library/hello-world:latest
Best regards.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-go-maintainers/attachments/20230402/afe0819c/attachment.htm>
-------------- next part --------------
$ podman --debug image load -i hello-world.tar.gz
INFO[0000] podman filtering at log level debug
DEBU[0000] Called load.PersistentPreRunE(podman --debug image load -i hello-world.tar.gz)
DEBU[0000] Merged system config "/usr/share/containers/containers.conf"
DEBU[0000] Using conmon: "/usr/bin/conmon"
DEBU[0000] Initializing boltdb state at /home/devel/.local/share/containers/storage/libpod/bolt_state.db
DEBU[0000] Using graph driver vfs
DEBU[0000] Using graph root /home/devel/.local/share/containers/storage
DEBU[0000] Using run root /run/user/1000/containers
DEBU[0000] Using static dir /home/devel/.local/share/containers/storage/libpod
DEBU[0000] Using tmp dir /run/user/1000/libpod/tmp
DEBU[0000] Using volume path /home/devel/.local/share/containers/storage/volumes
DEBU[0000] Set libpod namespace to ""
DEBU[0000] [graphdriver] trying provided driver "vfs"
DEBU[0000] Initializing event backend journald
DEBU[0000] Configured OCI runtime runc initialization failed: no valid executable found for OCI runtime runc: invalid argument
DEBU[0000] Configured OCI runtime runj initialization failed: no valid executable found for OCI runtime runj: invalid argument
DEBU[0000] Configured OCI runtime kata initialization failed: no valid executable found for OCI runtime kata: invalid argument
DEBU[0000] Configured OCI runtime runsc initialization failed: no valid executable found for OCI runtime runsc: invalid argument
DEBU[0000] Configured OCI runtime krun initialization failed: no valid executable found for OCI runtime krun: invalid argument
DEBU[0000] Using OCI runtime "/usr/bin/crun"
INFO[0000] Setting parallel job count to 25
DEBU[0000] Loading image from "hello-world.tar.gz"
DEBU[0000] -> Attempting to load "hello-world.tar.gz" as an OCI directory
DEBU[0000] Normalized platform linux/amd64 to {amd64 linux [] }
DEBU[0000] parsed reference into "[vfs@/home/devel/.local/share/containers/storage+/run/user/1000/containers]localhost/hello-world.tar.gz:latest"
DEBU[0000] Copying source image hello-world.tar.gz: to destination image [vfs@/home/devel/.local/share/containers/storage+/run/user/1000/containers]localhost/hello-world.tar.gz:latest
DEBU[0000] Error loading hello-world.tar.gz (oci): initializing source oci:hello-world.tar.gz:: open hello-world.tar.gz/index.json: not a directory
DEBU[0000] -> Attempting to load "hello-world.tar.gz" as an OCI archive
DEBU[0000] Normalized platform linux/amd64 to {amd64 linux [] }
DEBU[0000] Error deleting temporary directory: <nil>
DEBU[0000] Error loading hello-world.tar.gz (oci-archive): loading index: open /var/tmp/oci1734198058/index.json: no such file or directory
DEBU[0000] -> Attempting to load "hello-world.tar.gz" as a Docker archive
DEBU[0000] Detected compression format gzip
DEBU[0000] No compression detected
DEBU[0000] Error loading hello-world.tar.gz (docker-archive): loading tar component manifest.json: unexpected EOF
DEBU[0000] -> Attempting to load "hello-world.tar.gz" as a Docker dir
DEBU[0000] Normalized platform linux/amd64 to {amd64 linux [] }
DEBU[0000] Error loading hello-world.tar.gz (dir): open hello-world.tar.gz/manifest.json: not a directory
Error: payload does not match any of the supported image formats:
* oci: initializing source oci:hello-world.tar.gz:: open hello-world.tar.gz/index.json: not a directory
* oci-archive: loading index: open /var/tmp/oci1734198058/index.json: no such file or directory
* docker-archive: loading tar component manifest.json: unexpected EOF
* dir: open hello-world.tar.gz/manifest.json: not a directory
More information about the Pkg-go-maintainers
mailing list