【2021-03-08更新】关于思源笔记服务器docker的部署笔记
思源笔记
docker服务的布置
- 拉取镜像
b3log/siyuan
- 在宿主机
/siyuan/conf
下新建文件conf.json
,并且提前创建/siyuan/data/思源笔记用户指南
- 输入命令
docker run -v /siyuan/conf:/siyuan/conf -v /siyuan/data:/siyuan/data -p 6806:6806 b3log/siyuan --resident=true --conf=/siyuan/conf
4.
内容为
{
"url": "http://127.0.0.1:6806/siyuan/siyuan/思源笔记用户指南/",
"name": "思源笔记用户指南",
"auth": "",
"user": "",
"password": "",
"path": "/siyuan/data/思源笔记用户指南"
}
然后得到我的思源笔记地址:地址
存在的问题
如图所示,无法创建新的文件夹,从而无法建立新的笔记
解决方案
参考资料:
思源笔记 docker 部署问题 – 链滴 (ld246.com)
关于完善思源笔记 dav 与文件管理的个人建议 – 链滴 (ld246.com)
思源 Docker 版不能删除配置的 dav – 链滴 (ld246.com)
有用信息:
Docker 创建笔记本的话需要定死一个文件路径,类似在 Android 上那样。目前暂时还没有进行细节设计,如果目前就需要用的话请手动修改 conf.json。
在树莓派的openwrt中布置
其他流程一致,最后提示
stderr: standard_init_linux.go:211: exec user process caused "exec format error"
stderr: standard_init_linux.go:211: exec user process caused "exec format error"
stderr: standard_init_linux.go:211: exec user process caused "exec format error"
经过分析猜测问题来自于架构的不同,树莓派是arm架构,估计这个项目是x86的,于是前往dockerhub验证
不同架构下docker的兼容问题
docker run 失败 在logs中如下错误,standard_init_linux.go:211: exec user process caused “exec format error“
去github上查到一条可能相关的can’t deploy siyuan server with the docker images b3log/siyuan #1454
docker run -d -p 6806:6806 b3log/siyuan --resident=true
docker exec -it /bin/sh
应该不是这个问题,就是架构的锅
根据”#不同架构下docker的兼容问题#”
可知:
解决办法
既然问题根源找到了 ,那就好办了 ,只需要在当前arch的linux上重新docker build 就行 。
docker build相关
参考上述资料,打算使用 -f Dockerfile 文件的位置:
$ docker build -f /path/to/a/Dockerfile .
因此需要找到之前pull的image存储位置
猜测是
/opt/docker/vfs/dir/0f1818c5db9de0fcb5b31faeee1bd89cc3ac263d22e854accac223fdbf6e8ef5/
因此命令为docker build -f /opt/docker/vfs/dir/0f1818c5db9de0fcb5b31faeee1bd89cc3ac263d22e854accac223fdbf6e8ef5/
错误! dockerfile是一种特殊的文件,用来描述如何构建一个image
然后,我不会了。就这样吧,下次继续研究。
2021-03-02更新 支持docker打开本地文件啦(2:10 周三,镜像似乎还没更新)
Adds booting param for Docker: --data
for specifying the path of the data.
拉取命令docker pull b3log/siyuan
因此命令应该为:
docker run -v /siyuan/conf:/siyuan/conf -v /siyuan/data:/siyuan/data -p 6806:6806 b3log/siyuan --resident=true --conf=/siyuan/conf --data=/siyuan/data
2021-03-08 发现使用宝塔的docker管理面板无法获取最新镜像
因此使用命令docker images
查看镜像
得到
[root@iz2zehokmzpppxxwrsifshz ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
b3log/siyuan latest 01a241c3b07b 7 weeks ago 133MB
b3log/solo latest 2bc398af448b 2 months ago 143MB
radhifadlillah/shiori latest 69e24681b088 6 months ago 422MB
moritanosuke/wallabag-docker latest 495f85187162 4 years ago 626MB
然后使用docker rmi
删除目标镜像
这里应该为docker rmi 01a241c3b07b
然后再使用docker pull b3log/siyuan
docker run -v /siyuan/conf:/siyuan/conf -v /siyuan/data:/siyuan/data -p 6806:6806 b3log/siyuan --resident=true --conf=/siyuan/conf --data=/siyuan/data
我发现阿里云,科大的镜像加速更新都很慢,目前最好用的是网易
网易加速地址:https://hub-mirror.c.163.com/
成功进入之后发现需要用户名和密码,用户名为siyuan
,密码是随机生成的,在conf.json里面查看
如何让网页版思源和我的webdav共用文件?
思路:因为webdav的目录在wwwroot下,而docker部署的在siyuan/data下,无法直接让这两个文件夹合一,那么可以使用目录链接的方式让二者共享文件吗?
方案:
- 【不可行】重新构建docker,把数据的位置指定到webdav的目录
那么启动命令应该为:docker run -v /siyuan/conf:/siyuan/conf -v /siyuan/data:/siyuan/data -p 6806:6806 b3log/siyuan --resident=true --conf=/siyuan/conf --data=/www/wwwroot/47.93.237.242/dav
发现怎么都不行,估计是权限的问题
- 【可行】重建webdav,将目录改到思源的目录
参考#搭建webdav#
将其中的代码改为:
location / {
root /siyuan/data;
#client_max_body_size 102400M;#大文件支持
autoindex on;
dav_methods PUT DELETE MKCOL COPY MOVE;
# 需要 nginx-dav-ext-module 才有下面的选项
dav_ext_methods PROPFIND OPTIONS LOCK UNLOCK;
create_full_put_path on;
}
此时webdav的配置如下(此处在博客脱敏)我的webdav地址
(注意此处没有dav了)
id
密码
新的问题:#链接webdav后部分文件夹不可见#
连接webdav后只能看到【极客】文件夹,后来发现只要把之前的文件夹改名就能刷新出来,推测是以前的文件修改导致识别不到
保持docker开启
使用发现思源笔记的docker在有时会宕机,因此需要设置一个自动重启,使用docker container update --restart=always
输入为:docker container update --restart=always 4ec8fe06a520
2021 年 3 月 28 日
请问具体步骤和相关设置参数都是什么?我在群晖上想安装一下,但一直都搞不定
2021 年 3 月 31 日
1.拉取镜像
2.按照上面的代码 docker run..hvo
大概步骤是这样的,过程我都有记录,有具体的问题你可以写在评论区,群晖的图形界面操作我就不清楚了,建议用命令行