OpenList 更新 v4.1.1,将默认通过 1001 用户启动,请修改文件权限

13 天前
 Autonomous

以下内容摘自: https://github.com/OpenListTeam/OpenList/releases/tag/v4.1.1

为了更好地符合容器规范(甚至哪怕是 RedHat 的公约性质规定),从第 74 号问题开始,我们就已经开始准备对容器化使用方式的重构,涉及但不限于将 aria2 迁移为独立镜像等。

在 4.1.1 版本中,我们已移除 PUID/PGID 的运行方式,并且借鉴 MariaDB 等多个知名镜像的构建方法,通过 useradd 新增用户和用户组 openlist ( UID: 1001 ,GID: 1001 ),并以该用户身份运行 openlist server 。

新安装用户:理论上无需额外操作,开箱即用。
已有安装用户:如有权限问题,请在宿主机为该用户进行相应授权。
由于 Docker 和 Podman 在用户命名空间映射上的差异,宿主机用户与容器用户可能不完全对应。Podman 环境下,可以通过 UIDMap 或 UserNS 映射用户。

https://doc.oplist.org/guide/installation/docker

❓ 常见问题:
Q: 宿主机没有 UID 1001 的用户怎么办?
A: 不影响使用,授权时采用数字 UID 即可,无需宿主机实际存在该用户。

老用户更新后 Docker 容器直接起不来了,查日志看到是权限问题,之前一直是以 root 用户启动 Docker 容器,通过如下修改可以修复:

通过 SSH 连接到 NAS

cd [OpenList 容器的文件目录]
sudo chown 1001:1001 *
sudo chmod 755 *
1988 次点击
所在节点    NAS
11 条回复
realpg
13 天前
基于 UID/GID 数字绝对值 也是神仙操作...
fortynine
13 天前
如果我的现有环境已经有 1001 正在用,这个咋整……
Shura
13 天前
瞎折腾
MoeWang
13 天前
这次决定,就像是和 AI 聊了一会儿,然后被 AI 几个彩虹屁拍的,一拍大腿就上线了😂,直接写死 1001 。殊不知和 AI 聊天的 prompt 也是有技巧的,有些东西不提,它有时候并不会提醒你。
Niphor
12 天前
跑的时候 直接指定 user 不就好了
idssc
12 天前
炸了 10 分钟,然后发现这个问题,然后修改了自己的 openlist cli 脚本,不管是 4.1.0 或者变异的 4.1.1 都能支持
RobinHuuu
12 天前
自己改 docker 吧,哎
hosiet
12 天前
楼上都是怎么回事?这个 1001 只是无任何参数启动时的 uid/gid 默认值,如果不想用它想用别的用户执行,那直接用 docker 自带的 user 参数指定用户可以了,只不过以往是以环境变量指定现在是用原生方式指定用户而已。什么参数都没有时总要以某个用户身份运行程序吧?难道不用 1001 用 0 ( root )?

如果我有哪里理解不对麻烦提醒我一下。
vergilgao
5 天前
unraid 直接指定 user 99:100 就行了
相比环境变量,这种方式运行更可靠。
docker 一直以来最让人诟病的也是这种默认运行用户具有 root 权限,我之前写 dockerfile 时也经常要搞一个 su-exec 这种东西,然后通过环境变量运行程序,为了权限不出错,还得写一个 entrypoint.sh 啰里啰唆的把所有要用的文件夹 chown 一下,其实挺不好的。
Darkyyx
4 天前
@vergilgao 不支持环境变量了好歹模板里 puid pgid 都删了,特么的我调了半天才发现不支持了,应用商店里也没有任何说明,真的是。。。
THESDZ
2 天前
注意

在 v4.1.0 以后的版本中(不包含 v4.1.0 ),OpenList 镜像已经移除了 PUID 、PGID ,并借鉴于 MariaDB 的构建方式,使用 useradd 增加了用户 openlist ( UID 1001 )和组 openlist ( GID 1001 ),并使用该用户运行 openlist server 。

这意味着,您需要手动处理映射的目录的权限问题,确保容器内的 openlist(1001) 用户有权限访问映射的目录。

您也可以通过 --user UID:GID 的方式来运行容器指定容器内运行 OpenList 的用户和组,让容器内有权限访问映射的目录。

rootless 模式中的 Docker , --user 0:0 代表当前用户的 UID 和 GID 。请确保您在运行容器时,正确设置了 --user 参数,以确保文件权限的正确性。


上面摘抄自
https://doc.oplist.org/guide/installation/docker

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1153897

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX