-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Description
podman is (by design) not fully compatible with docker when it comes to user permissions. Therefore, ./src/ci/docker/run.sh
needs to look behind the docker
curtain to figure out whether it's actually podman and opt out of the user isolation.
Lines 219 to 226 in eb76764
if [[ "$id" != 0 && "$(docker -v)" =~ ^podman ]]; then | |
# Rootless podman creates a separate user namespace, where an inner | |
# LOCAL_USER_ID will map to a different subuid range on the host. | |
# The "keep-id" mode maps the current UID directly into the container. | |
args="$args --env NO_CHANGE_USER=1 --userns=keep-id" | |
else | |
args="$args --env LOCAL_USER_ID=$id" | |
fi |
With ubuntus docker podman compat package this works fine, because there docker --version
prints something containing podman. But if you symlink docker
to podman
(something NixOS does if you set up docker-podman compat) then docker --version
actually prints docker version 4.5.0
. Podman outsmarts CI's detection.
I'm not sure about the ideal way to fix this, but docker system --help
contains "manage podman" for me, so do whatever you want with this information.