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

  1. docker : Passed
  2. docker-dockerfile : Passed

podman ideal use cases replaced by above docker use cases

  1. podman : Failed
  2. podman-dockerfile : Failed

podman use cases to analyze issues

  1. podman-own-registries-podman-run : Passed
  2. podman-sudo : Failed
  3. podman-own-registries-sudo-podman-run : Failed
  4. 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.

  1. Include /etc/containers/registries.conf to the podman deb package to align the initial state with podman RPM on Fedora. Seeing the result of $ dpkg-query -L podman in the Travis log, there is no registries.conf file 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 = []
    
  2. 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 
    
  3. 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:

  1. See the “6 podman-sudo”. The case shows the issue simply https://travis-ci.org/junaruga/multiarch-podman-experiment/builds/565807138

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

Most upvoted comments

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!

Can I send a pull-request to add this content to run podman on Travis CI to below document?

Absolutely, yes. Contributions are always welcome!