我正在尝试使用podman设置gitea
。我想要
Podman由根用户执行,主要是因为我在podman generate systemd --new
和无根容器中遇到的问题(参见系统User=指令不受支持,为什么?和支持系统中的User=以运行无根服务)。
为了实现对根满容器的映射,开始将所有在用容器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
on openSUSE Leap 15.3。
如何运行这个容器,同时将所有正在使用的uid
s和gid
s映射到特定的主机用户/组?
发布于 2022-11-28 16:58:56
根本原因似乎是试图将多个容器uid
s (和gid
s )映射到一个单一的uid
/gid
到主机。因此,我试图映射(容器到主机):
相反,我知道回到了不同的映射,其中只有实际运行Gitea应用程序的1000UID/GID对被映射到主机用户,而其他人则收到不同的UID范围。
--uidmap=0:10000:999 \
--gidmap=0:10000:999 \
--uidmap=1000:$(id -u gitea):1 \
--gidmap=1000:$(id -g gitea):1 \
这意味着我们有以下映射
通过此更改,容器成功启动,主机上的权限与预期的相同。
https://serverfault.com/questions/1116778
复制相似问题