Skip to content

Podman as a drop-in replacement for Docker in GitLab Runner Docker Executor on Linux - Beta

Release notes

Starting with GitLab Runner 15.1, you can use Podman as the container runtime in the GitLab Runner Docker Executor. This feature is in Beta.

In this configuration, you do not need to install Docker on the host. Podman as the container runtime is using the Runner Docker executor as-is. Therefore you still have to set the executor = Docker and configure the [[runners.docker]] section in the Runners config.toml file.

[[runners]]
  name = "podman-test-runner-2022-06-07"
  url = "https://gitlab.com/"
  token = ""
  executor = "docker"
  [runners.docker]
    host = "unix:///run/user/1012/podman/podman.sock"
    tls_verify = false
    image = "quay.io/podman/stable"
    privileged = true

Demo video

Overview

The compatibility API introduced in Podman 2.0 was designed to "emulate the Docker RESTful API to assist in migration of tools, applications, and services long-term to libpod. This new capability has allowed us to consider supporting Podman as a drop-in replacement for Docker in GitLab Runner + the Docker Executor. The GitLab Runner and Red Hat engineering teams have been working closely over the past year to resolve issues discovered in testing however, as of Podman v4.1.0, the handling of stdin and stdout results in errors in certain conditions when used as a replacement for Docker in GitLab Runner.

Edited by Manuel Grabowski