今天在一台 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 部署思源后,用浏览器访问之,结果输完用户名密码后,就一直卡住了,中间一个大图标一直在转圈圈,试过多次都是这样。后来偶然把浏览器代理关了,就能正常访问了,才发现原来是浏览器开了代理的缘故。现在能用是能用了,不过我还没明白出现这个现象的深层原因是什么。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于