podman: podman save --format=oci-archive fails to write to a pipe
Is this a BUG REPORT or FEATURE REQUEST? (leave only one on its own line)
/kind bug
Description
I wanted a quick and dirty way to copy an image from one computer to another. The manual for podman save says that it writes to stdout by default and the manual for podman load says that it reads from stdin by default so I assumed that piping the output of podman save to the destination via ssh would work, but podman save --format=oci-archive fails to write to a pipe.
Steps to reproduce the issue:
-
C="$(buildah from scratch)" -
buildah commit "$C" bug -
podman save --format=oci-archive bug | cat >/dev/null
Describe the results you received:
Error: error getting OCI archive ImageReference for (“/dev/stdout”, “localhost/bug”): lstat /proc/2102/fd/pipe:[34531]: no such file or directory
Describe the results you expected:
The image archive is written to stdout.
Additional information you deem important (e.g. issue happens only occasionally):
- This bug happens every time
- Without --format=oci-archive the command does not error
Output of podman version:
Version: 2.0.2
API Version: 1
Go Version: go1.14.3
Built: Thu Jan 1 03:00:00 1970
OS/Arch: linux/amd64
Output of podman info --debug:
host:
arch: amd64
buildahVersion: 1.15.0
cgroupVersion: v2
conmon:
package: conmon-2.0.18-1.fc32.x86_64
path: /usr/bin/conmon
version: 'conmon version 2.0.18, commit: 6e8799f576f11f902cd8a8d8b45b2b2caf636a85'
cpus: 2
distribution:
distribution: fedora
version: "32"
eventLogger: file
hostname: hostname
idMappings:
gidmap:
- container_id: 0
host_id: 1000
size: 1
- container_id: 1
host_id: 100000
size: 65536
uidmap:
- container_id: 0
host_id: 1000
size: 1
- container_id: 1
host_id: 100000
size: 65536
kernel: 4.19.132-1.pvops.qubes.x86_64
linkmode: dynamic
memFree: 106500096
memTotal: 479236096
ociRuntime:
name: crun
package: crun-0.14.1-1.fc32.x86_64
path: /usr/bin/crun
version: |-
crun version 0.14.1
commit: 598ea5e192ca12d4f6378217d3ab1415efeddefa
spec: 1.0.0
+SYSTEMD +SELINUX +APPARMOR +CAP +SECCOMP +EBPF +YAJL
os: linux
remoteSocket:
path: /run/user/1000/podman/podman.sock
rootless: true
slirp4netns:
executable: /usr/bin/slirp4netns
package: slirp4netns-1.1.4-1.fc32.x86_64
version: |-
slirp4netns version 1.1.4
commit: b66ffa8e262507e37fca689822d23430f3357fe8
libslirp: 4.3.1
SLIRP_CONFIG_VERSION_MAX: 2
swapFree: 997453824
swapTotal: 1073737728
uptime: 14m 16.04s
registries:
search:
- registry.fedoraproject.org
- registry.access.redhat.com
- registry.centos.org
- docker.io
store:
configFile: /home/user/.config/containers/storage.conf
containerStore:
number: 4
paused: 0
running: 0
stopped: 4
graphDriverName: overlay
graphOptions:
overlay.mount_program:
Executable: /usr/bin/fuse-overlayfs
Package: fuse-overlayfs-1.1.2-1.fc32.x86_64
Version: |-
fusermount3 version: 3.9.1
fuse-overlayfs: version 1.1.0
FUSE library version 3.9.1
using FUSE kernel interface version 7.31
graphRoot: /home/user/.local/share/containers/storage
graphStatus:
Backing Filesystem: extfs
Native Overlay Diff: "false"
Supports d_type: "true"
Using metacopy: "false"
imageStore:
number: 5
runRoot: /run/user/1000/containers
volumePath: /home/user/.local/share/containers/storage/volumes
version:
APIVersion: 1
Built: 0
BuiltTime: Thu Jan 1 03:00:00 1970
GitCommit: ""
GoVersion: go1.14.3
OsArch: linux/amd64
Version: 2.0.2
Package info (e.g. output of rpm -q podman or apt list podman):
podman-2.0.2-1.fc32.x86_64
Additional environment details (AWS, VirtualBox, physical, etc.): QubesOS https://github.com/QubesOS
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Comments: 20 (6 by maintainers)
Commits related to this issue
- podman save use named pipe podman save uses named pipe as output path, not directly using /dev/stdout. fix #7017 Signed-off-by: Qi Wang <qiwan@redhat.com> — committed to QiWang19/podman by QiWang19 4 years ago
- podman save use named pipe podman save uses named pipe as output path, not directly using /dev/stdout. fix #7017 Signed-off-by: Qi Wang <qiwan@redhat.com> — committed to QiWang19/podman by QiWang19 4 years ago
- podman save use named pipe podman save uses named pipe as output path, not directly using /dev/stdout. fix #7017 Signed-off-by: Qi Wang <qiwan@redhat.com> — committed to QiWang19/podman by QiWang19 4 years ago
- podman save use named pipe podman save uses named pipe as output path, not directly using /dev/stdout. fix #7017 Signed-off-by: Qi Wang <qiwan@redhat.com> — committed to QiWang19/podman by QiWang19 4 years ago
- podman save use named pipe podman save uses named pipe as output path, not directly using /dev/stdout. fix #7017 Signed-off-by: Qi Wang <qiwan@redhat.com> — committed to QiWang19/podman by QiWang19 4 years ago
- podman save use named pipe podman save uses named pipe as output path, not directly using /dev/stdout. fix #7017 Signed-off-by: Qi Wang <qiwan@redhat.com> — committed to QiWang19/podman by QiWang19 4 years ago
- podman save use named pipe podman save uses named pipe as output path, not directly using /dev/stdout. fix #7017 Signed-off-by: Qi Wang <qiwan@redhat.com> — committed to QiWang19/podman by QiWang19 4 years ago
- podman save use named pipe podman save uses named pipe as output path, not directly using /dev/stdout. fix #7017 Signed-off-by: Qi Wang <qiwan@redhat.com> — committed to QiWang19/podman by QiWang19 4 years ago
- podman save use named pipe podman save uses named pipe as output path, not directly using /dev/stdout. fix #7017 Signed-off-by: Qi Wang <qiwan@redhat.com> — committed to QiWang19/podman by QiWang19 4 years ago
- podman save use named pipe podman save uses named pipe as output path, not directly using /dev/stdout. fix #7017 Signed-off-by: Qi Wang <qiwan@redhat.com> — committed to QiWang19/podman by QiWang19 4 years ago
- podman save use named pipe podman save uses named pipe as output path, not directly using /dev/stdout. fix #7017 Signed-off-by: Qi Wang <qiwan@redhat.com> — committed to QiWang19/podman by QiWang19 4 years ago
- podman save use named pipe podman save uses named pipe as output path, not directly using /dev/stdout. fix #7017 Signed-off-by: Qi Wang <qiwan@redhat.com> — committed to QiWang19/podman by QiWang19 4 years ago
- podman save use named pipe podman save uses named pipe as output path, not directly using /dev/stdout. fix #7017 Signed-off-by: Qi Wang <qiwan@redhat.com> — committed to QiWang19/podman by QiWang19 4 years ago
- podman save use named pipe podman save uses named pipe as output path, not directly using /dev/stdout. fix #7017 Signed-off-by: Qi Wang <qiwan@redhat.com> — committed to QiWang19/podman by QiWang19 4 years ago
- podman save use named pipe podman save uses named pipe as output path, not directly using /dev/stdout. fix #7017 Signed-off-by: Qi Wang <qiwan@redhat.com> — committed to QiWang19/podman by QiWang19 4 years ago
- podman save use named pipe podman save uses named pipe as output path, not directly using /dev/stdout. fix #7017 Signed-off-by: Qi Wang <qiwan@redhat.com> — committed to QiWang19/podman by QiWang19 4 years ago
- podman save use named pipe podman save uses named pipe as output path, not directly using /dev/stdout. fix #7017 Signed-off-by: Qi Wang <qiwan@redhat.com> — committed to QiWang19/podman by QiWang19 4 years ago
- podman save use named pipe podman save uses named pipe as output path, not directly using /dev/stdout. fix #7017 Signed-off-by: Qi Wang <qiwan@redhat.com> — committed to QiWang19/podman by QiWang19 4 years ago
- podman save use named pipe podman save uses named pipe as output path, not directly using /dev/stdout. fix #7017 Signed-off-by: Qi Wang <qiwan@redhat.com> — committed to QiWang19/podman by QiWang19 4 years ago
- podman save use named pipe podman save uses named pipe as output path, not directly using /dev/stdout. fix #7017 Signed-off-by: Qi Wang <qiwan@redhat.com> — committed to QiWang19/podman by QiWang19 4 years ago
I’m very tempted to sing la la la and pretend this bug doesn’t exist 😃
A named pipe would probably be least disruptive, when taking into account both c/image and the Podman call stack.