1.5.4+ 版本思源笔记 Docker 部署参考(1.7 + 版有效)

一、修改思源笔记默认 6806 端口(以 1.5.4 版为例,不修改端口可跳过这一步

  1. 下载思源笔记 linux 版客户端

下载地址:https://b3log.org/siyuan/download.html

  1. 解开下载好的 siyuan-1.5.4-linux.tar.gz,找到安装包中的 resources/stage/ 目录下找到 build 文件夹
  2. 修改 appdesktopexportmobile 4 个目录下所有 js 文件,将 6806 替换成 80

js 名类似 main.d3d59c662fee6c9d90d0.jsprotyle-method.js 等,中间数字为随机生成

  1. build 文件夹复制 /home/mura/siyuan 目录(此目录下准备放思源笔记的工作空间,可根据自己需要自定,我是又新建了一个 server 目录),并给/home/mura/siyuan 目录配置权限,准备做容器卷
    cp -r /home/mura/downloads/build /home/mura/siyuan/server
    
    chown -R 1000:1000 /home/mura/siyuan
    

二、Docker 部署

  1. 1.5.2 版之后,思源笔记容器内部改为 1000:1000 用户运行,所以相应的目录都需要放在宿主机的 1000 用户(安装 linux 时第一个创建的用户)有权限访问的目录

    假设:

    第一个创建的用户名为: mura

    思源笔记的工作空间:/home/mura/siyuan/notes

    思源笔记 build 文件夹所在目录:/home/mura/siyuan/server/build

  2. 开始拉取最新镜像

docker pull b3log/siyuan:v1.5.4
docker pull b3log/siyuan:latest

3、运行容器

docker run -itd --name siyuan \
    --restart=always \
    -u 1000:1000 \
    -e LANG=zh_CN.UTF-8 \ 
    -e LC_ALL=zh_CN.UTF-8 \
    -v /home/mura/siyuan/notes:/home/siyuan/Documents/SiYuan \
    -v /home/mura/siyuan/server/build:/opt/siyuan/stage/build \
    -p 80:6806 \
    b3log/siyuan:latest

如果不修改端口

docker run -itd --name siyuan \
    --restart=always \
    -u 1000:1000 \
    -e LANG=zh_CN.UTF-8 \ 
    -e LC_ALL=zh_CN.UTF-8 \
    -v /home/mura/siyuan/notes:/home/siyuan/Documents/SiYuan \
    -p 6806:6806 \
    b3log/siyuan:latest
4 操作
Mura 在 2022-01-25 09:20:51 更新了该帖
Mura 在 2022-01-10 10:36:49 更新了该帖
Mura 在 2021-12-23 08:06:57 更新了该帖
Mura 在 2021-12-02 10:35:42 更新了该帖

相关帖子

欢迎来到这里!

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

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

    大侠高见。

    请问群晖 GUI 界面有办法这样自定义部署吗?

    谢谢。

    1 回复
  • Mura
    捐赠者 作者

    我没用过群晖,不知道怎么访问宿主机目录,只要能将 js 文件拷进去,就可以。

    还有一种思路就是在其他地方下载好镜像,生成容器后,进容器修改好 js 文件,再做成镜像传到 hub.docker.com 上去,然后再下载自己的镜像重新生成容器

    最简单的方法就是让开发人员改。。。

    以上方法均无特殊要求,全部是常规参数常规操作,所以群晖我觉得是可以的

    1 回复
  • hykest
    订阅者

    我技术小白,所以还不知道怎么访问群晖 docker 里面的文件和配置……

    我还在研究研究

    谢谢。

  • Red

    搭好了,感谢

  • some 2 评论

    😭 一直在转圈,根本进不去。。

    image.png

    启动命令是

    docker run -itd --name siyuan
    --restart=always
    -u 1000:1000
    -v /home/siyuan/data:/home/siyuan/Documents/SiYuan
    -p 6806:6806
    b3log/siyuan:latest

    其中/home/siyuan/data 已经使用 chown -R 1000:1000 改了权限

    -e 参数不知道为什么提示 command not found,所以就没加了
    some
    @some docker logs siyuan 查看一下容器日志,再来判断比较好
    Mura
  • some

    log 日志如下,大佬帮忙看下,感谢。

    
    I 2021/12/22 09:42:45 runtime.go:57: kernel is booting:
        * ver [1.5.4]
        * arch [amd64]
        * runtime mode [prod]
        * working directory [/opt/siyuan]
        * read only [false]
        * container [docker]
        * database [ver=20211124]
        * workspace directory [/home/siyuan/Documents/SiYuan, data 20 kB]
        * rsync [version 3.2.3  protocol version 31]
        * pandoc [pandoc 2.13]
    I 2021/12/22 09:42:45 conf.go:257: local serve path [http://127.0.0.1:6806]
    I 2021/12/22 09:42:45 serve.go:68: kernel is booting [http://0.0.0.0:6806]
    I 2021/12/22 09:42:45 conf.go:507: pre-init database size [66 kB]
    I 2021/12/22 09:42:45 conf.go:523: post-init database size [66 kB], tree stat [count=0, size=0 B]
    I 2021/12/22 09:42:45 working.go:113: kernel booted
    
    1 回复
  • Mura
    捐赠者 作者

    你这个已经启动成功了。

    我现在怀疑,你是不是做了把 JS 文件中的 6806 端口替换成了 80 端口了?

    我看你启动容器是用了-p 6806:6806

    所以我的教程里前面 js 改 80 端口不用改。

    还有一个办法可以查看。按 F12,用浏览器的开发者工具,到网络里看,有哪个文件是 404,没有找到的。

    我之前将端口改成 80 也不能用,后来用开发者工具一看,有几个 js 文件没有加载成功,404

    进而发现有几个文件是 js 里写死了 6806 端口

请输入回帖内容 ...