podman: Incompatibilities of podman from docker on Travis CI
Is this a BUG REPORT or FEATURE REQUEST? (leave only one on its own line)
/kind bug
Description
Summary
I tried how podman worked on Travis CI comparing it from the benaviors of docker. Here is the reproducer on my repository. https://github.com/junaruga/multiarch-podman-experiment https://github.com/junaruga/multiarch-podman-experiment/blob/master/.travis.yml
Seeing the result of Travis CI, https://travis-ci.org/junaruga/multiarch-podman-experiment/builds/565807138
There are total 8 test cases for both podman and docker in the Travis page.
docker use cases
- docker : Passed
- docker-dockerfile : Passed
podman ideal use cases replaced by above docker use cases
- podman : Failed
- podman-dockerfile : Failed
podman use cases to analyze issues
- podman-own-registries-podman-run : Passed
- podman-sudo : Failed
- podman-own-registries-sudo-podman-run : Failed
- podman-sudo-podman-run-full-image-with-registry : Failed
- My goal is to pass the test cases “3. podman” and “4. podman-dockerfile” that are cases replaced from “1. docker” and “2. docker-dockerfile”, basically replaced “docker” with “podman”.
- “6. podman-sudo” is the case that I like to see to be fixed in the highest priority.
- “7. podman-own-registries-sudo-podman-run” and “8. podman-sudo-podman-run-full-image-with-registry” are just to share the information.
Suggestions
I have some suggestions seeing the result.
-
Include
/etc/containers/registries.confto the podman deb package to align the initial state with podman RPM on Fedora. Seeing the result of$ dpkg-query -L podmanin the Travis log, there is noregistries.conffile in it. I want podman deb package to include the file to give podman users similar experiment with docker or with podman Fedora package./etc/containers/registries.conf
[registries.search] registries = ['docker.io', 'registry.fedoraproject.org', 'quay.io', 'registry.access.redhat.com', 'registry.centos.org'] [registries.insecure] registries = [] [registries.block] registries = [] -
Seeing “6. podman-sudo”, do you know what is the reason of the error? Is there way to avoid this issue as a temporary workflow? https://travis-ci.org/junaruga/multiarch-podman-experiment/jobs/565807144
$ sudo podman --log-level debug run --rm docker.io/fedora uname -m ERRO[0000] error creating libpod runtime: error creating runtime static files directory /var/lib/containers/storage/libpod: mkdir /var/lib/containers: permission denied -
Seeing “5. podman-own-registries-podman-run”, the test case is passed. But there is a error message regardless the command exists with 0 successfully. https://travis-ci.org/junaruga/multiarch-podman-experiment/jobs/565807143 . Is this related to https://github.com/containers/libpod/issues/2794 ?
ERRO[0010] could not find slirp4netns, the network namespace won't be configured: exec: "slirp4netns": executable file not found in $PATH x86_64 The command "podman run --rm -t fedora uname -m" exited with 0.
Steps to reproduce the issue:
-
See the “6 podman-sudo”. The case shows the issue simply https://travis-ci.org/junaruga/multiarch-podman-experiment/builds/565807138
-
Run below command on the Travis CI environment. (“6 podman-sudo” case)
$ sudo -E apt-get -yq --no-install-suggests --no-install-recommends $(travis_apt_get_options) install podman $ sudo podman --log-level debug run --rm docker.io/fedora uname -m
Describe the results you received:
Below command finishes with the error.
$ sudo podman --log-level debug run --rm docker.io/fedora uname -m
ERRO[0000] error creating libpod runtime: error creating runtime static files directory /var/lib/containers/storage/libpod: mkdir /var/lib/containers: permission denied
The command "sudo podman --log-level debug run --rm docker.io/fedora uname -m" exited with 125.
- The test cases: “3. podman” and “4. podman-dockerfile” are failed.
- The test case “5. podman-own-registries-podman-run” are passed with the error message
ERRO[0010] could not find slirp4netns, the network namespace won't be configured: exec: "slirp4netns": executable file not found in $PATH.
Describe the results you expected:
Below command finishes with success.
$ sudo podman --log-level debug run --rm docker.io/fedora uname -m
- The test cases: “3. podman” and “4. podman-dockerfile” are passed.
- The test case “5. podman-own-registries-podman-run” are passed without an error message.
Additional information you deem important (e.g. issue happens only occasionally):
This comes from the test https://github.com/multiarch/qemu-user-static with podman on Travis CI, that I shared on https://github.com/containers/buildah/issues/1590#issuecomment-493755305 in a past tme.
Output of podman version:
$ podman version
Version: 1.4.3
RemoteAPI Version: 1
Go Version: go1.10.4
OS/Arch: linux/amd64
Output of podman info --debug:
$ podman info --debug
WARN[0000] cannot run `loginctl enable-linger` for the current user: exit status 1
debug:
compiler: gc
git commit: ""
go version: go1.10.4
podman version: 1.4.3
host:
BuildahVersion: 1.9.0
Conmon:
package: 'conmon: /usr/bin/conmon'
path: /usr/bin/conmon
version: 'conmon version 0.3.0, commit: unknown'
Distribution:
distribution: ubuntu
version: "16.04"
MemFree: 6542876672
MemTotal: 7835996160
OCIRuntime:
package: 'cri-o-runc: /usr/bin/runc'
path: /usr/bin/runc
version: 'runc version spec: 1.0.1-dev'
SwapFree: 0
SwapTotal: 0
arch: amd64
cpus: 2
hostname: travis-job-ee3fb551-7f6d-46ac-867a-1f7a887fa827
kernel: 4.15.0-1028-gcp
os: linux
rootless: true
uptime: 1m 4.43s
registries:
blocked: null
insecure: null
search: null
store:
ConfigFile: /home/travis/.config/containers/storage.conf
ContainerStore:
number: 0
GraphDriverName: vfs
GraphOptions: null
GraphRoot: /home/travis/.local/share/containers/storage
GraphStatus: {}
ImageStore:
number: 0
RunRoot: /run/user/2000
VolumePath: /home/travis/.local/share/containers/storage/volumes
Additional environment details (AWS, VirtualBox, physical, etc.):
Travis CI. The OS is Ubuntu xenial.
Here is the podman deb package information.
$ apt-cache show podman
Package: podman
Priority: optional
Section: devel
Installed-Size: 34246
Maintainer: Lokesh Mandvekar <lsm5@fedoraproject.org>
Architecture: amd64
Version: 1.4.3-1~ubuntu16.04.2~ppa1
Depends: libseccomp2, libdevmapper1.02.1, libgpgme11, containernetworking-plugins (>= 0.7.5), conmon (>= 0-1~dev~ubuntu16.04~ppa1), containers-common (>= 0.1.36-1~dev~ubuntu16.04.2~ppa7), cri-o-runc
Filename: pool/main/p/podman/podman_1.4.3-1~ubuntu16.04.2~ppa1_amd64.deb
Size: 7422446
MD5sum: bf748c157692b83547826897568f9b74
SHA1: 2f2c9e4c8781343638ab3baf075d675922fbdc9f
SHA256: 201b3cac5989306b20034d7f0db4ec9ba667965b4d95bd27c018c4ade76aca8d
Description-en: Manage pods, containers and container images.
Description-md5: b77ba7b65e652815c2243cb728ae77e6
Here is the file list on the podman deb package. To see the full list, you can check the Travis CI log.
$ dpkg-query -L podman
/.
/etc
/etc/cni
/etc/cni/net.d
/etc/cni/net.d/87-podman-bridge.conflist
/usr
...
/usr/share/man/man1/podman-container-mount.1.gz
Thank you.
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Comments: 36 (31 by maintainers)
Commits related to this issue
- automation: Use podman by default. Docker is not supported anymore in Fedora and RHEL 8, hence change the run-tests.sh to use podman by default, to use docker: sudo env CONTAINER_CMD=docker ./au... — committed to cathay4t/nmstate by cathay4t 4 years ago
- automation: Use podman by default Docker is not supported anymore in Fedora and RHEL 8, hence change the run-tests.sh to use podman by default, to use docker: sudo env CONTAINER_CMD=docker ./aut... — committed to cathay4t/nmstate by cathay4t 4 years ago
- automation: Use podman by default Docker is not supported anymore in Fedora and RHEL 8, hence change the run-tests.sh to use podman by default, to use docker: sudo env CONTAINER_CMD=docker ./aut... — committed to cathay4t/nmstate by cathay4t 4 years ago
- automation: Use podman by default Docker is not supported anymore in Fedora and RHEL 8, hence change the run-tests.sh to use podman by default, to use docker: sudo env CONTAINER_CMD=docker ./aut... — committed to cathay4t/nmstate by cathay4t 4 years ago
- automation: Use podman by default Docker is not supported anymore in Fedora and RHEL 8, hence change the run-tests.sh to use podman by default, to use docker: sudo env CONTAINER_CMD=docker ./aut... — committed to cathay4t/nmstate by cathay4t 4 years ago
- automation: Use podman by default Docker is not supported anymore in Fedora and RHEL 8, hence change the run-tests.sh to use podman by default, to use docker: sudo env CONTAINER_CMD=docker ./aut... — committed to cathay4t/nmstate by cathay4t 4 years ago
- automation: Use podman by default Docker is not supported anymore in Fedora and RHEL 8, hence change the run-tests.sh to use podman by default, to use docker: sudo env CONTAINER_CMD=docker ./aut... — committed to cathay4t/nmstate by cathay4t 4 years ago
- automation: Use podman by default Docker is not supported anymore in Fedora and RHEL 8, hence change the run-tests.sh to use podman by default, to use docker: sudo env CONTAINER_CMD=docker ./aut... — committed to cathay4t/nmstate by cathay4t 4 years ago
- automation: Use podman by default Docker is not supported anymore in Fedora and RHEL 8, hence change the run-tests.sh to use podman by default, to use docker: sudo env CONTAINER_CMD=docker ./aut... — committed to cathay4t/nmstate by cathay4t 4 years ago
Per discussion, it sounds like we’re going to swap it back to a Requires. I remember it being swapped originally so rootless Podman did not need to install root-only dependencies, but if that results in broken installations, it doesn’t seem to be worth it.
@junaruga We would love to have this added to libpod for testing.
Hi @junaruga, thanks for sharing!
Absolutely, yes. Contributions are always welcome!