Podman is a lot like Docker: a tool for running OCI containers. While it maintains backwards compatibility with Dockerfile and docker-compose syntax, it offers a lot of other benefits:

  • daemonless: it can run containers without a daemon process running in the background.
  • Rootless: can run containers without root privileges
  • pods: can group containers into secluded pods, which share resources and network namespace

Podman has other features I haven’t explored yet, like compatibility with Kubernetes yaml file, and being able to run containers as systemd units.

Have you used podman before? What are your thoughts on it?

  • agilob
    link
    English
    110 months ago

    I got it all working on self hosted kubernetes and crossplatform builds with buildah. What’s your problem exactly? For TC you need to use some env vars to configure ports in .gitlabci

      • agilob
        link
        English
        110 months ago

        I’ll try to find it tomorrow

        • @[email protected]
          cake
          link
          fedilink
          110 months ago

          I’m very interested in a solution. Our current setup, where we use an external docker host for Testcontainers and Podman to build images is quite painful

          • agilob
            link
            English
            110 months ago

            I have this on my to-do list, but sorry, can’t promise when I’ll make a working demo. afair the trick was to use something like “podman in-podman”, like dind works in GitLab runners and then some env-vars manipulation so TC thinks it runs in docker, something like

            DOCKER_HOST=unix:///run/user/1000/podman/podman.sock and I use alpine as gitlab-ci helper image:

                    image = "docker.io/alpine:3.17.2"
                    helper_image_flavor = "alpine"
            

            not sure if that matters, but i had lots of strange problems running with Ubuntu helper images, most were DNS propagation issues