docker 部署思源的一个坑

今天在一台 ubuntu 机器上 docker 部署思源,遇到一个坑,记录于此。如有类似问题的小伙伴,看到也可少走一些弯路。

掉坑

首先是以官方给的命令运行思源,结果思源闪退,没有任何出错信息提示,只看到 exitCode 为 254。

猜测可能是权限问题,于是把 siyuan, siyuan/conf, siyuan/data 权限全改为 777,就可以运行了。

但是,在具体操作笔记本的时候,仍然遇到权限问题,无法新建笔记。

经过排查,发现思源在 conf 文件夹内文件 owner 全部为 ubuntu,并非我当前登录用户。我后来发现,其实问题的根源在于,docker 思源总是以 UID=1000 运行,但是我当前登录用户的 UID 却不是 1000,于是造成了这些权限问题。

出坑

我的解决方法是,暂时迎合思源的处理逻辑,将我当前用户 UID 和用户组 GID 都改为 1000,重新启动思源,就能顺利运行了。

建议

docker 思源最好不要直接以 UID=1000 操作文件系统,而是先判断出当前正在部署 docker 的用户,然后以其身份再去操作文件系统。是否可行?

ps: 还有一个小坑也记录于此吧,docker 部署思源后,用浏览器访问之,结果输完用户名密码后,就一直卡住了,中间一个大图标一直在转圈圈,试过多次都是这样。后来偶然把浏览器代理关了,就能正常访问了,才发现原来是浏览器开了代理的缘故。现在能用是能用了,不过我还没明白出现这个现象的深层原因是什么。

广告 我要投放

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 88250
    订阅者

    感谢指出问题,下个版本我们进行改进。