我正在尝试gitea
使用 podman 进行设置。我想拥有
- 映射到主机目录的数据卷,因为它允许我轻松检查和备份数据
- 特定宿主用户执行的容器进程
Podman 由 root 用户执行,主要是因为我在使用podman generate systemd --new
无根容器时遇到的问题(请参阅systemd User= directive not supported, why?和support User= in systemd for running rootless services)。
为了实现与 rootfull 容器的映射,开始将所有正在使用的容器uid
s 和gid
s 映射到主机的gitea user
. 我最终得到了类似的东西
podman run --rm \
--uidmap=0:$(id -u gitea):1 \
--gidmap=0:$(id -g gitea):1 \
--uidmap=1000:$(id -u gitea):1 \
--gidmap=1000:$(id -g gitea):1 \
--gidmap=42:$(id -g gitea):1 \
--volume /srv/gitea/data:/var/lib/gitea \
docker.io/gitea/gitea:1.18.0-rc1-rootless
我得到的输出是
WARN[0000] Path "/etc/SUSEConnect" from "/etc/containers/mounts.conf" doesn't exist, skipping
WARN[0000] Path "/etc/zypp/credentials.d/SCCcredentials" from "/etc/containers/mounts.conf" doesn't exist, skipping
Error: OCI runtime error: runc create failed: unable to start container process: can't get final child's PID from pipe: EOF
尽管有路径警告,我还是成功运行了其他 podman 容器,所以我认为可以忽略它们。
我podman version 3.4.7
在 openSUSE Leap 15.3 上运行。
我如何运行这个容器,同时将所有正在使用uid
的 s 和gid
s 映射到特定的主机用户/组?