在飞牛nas上 docker 里面,通过 compose(项目)安装思源笔记 docker 版
飞牛应用中心里自带思源笔记,但是应用中心里面的思源笔记版本更新迭代太慢了,好多新功能没法使用,而且插件也随着新的更新不支持老版本的思源笔记。所以更新思源笔记的版本是仅次于笔记数据安全的第二重要的事情。
第一重要的事情是:思源笔记的数据存储。
飞牛 nas,我估计只要放重要数据的都会组 raid,不管 raid 几,但是飞牛应用中心里面的思源笔记安装是在系统盘或装完系统剩余的存储空间内而不是我们自己创建的指定文件夹。
系统盘:估计绝大多数的系统盘都是固态硬盘,或者装完系统盘剩余的存储空间,这两个空间没有 raid。也就根数据安全扯不上关系了。
为了把安装在系统盘 docker 里的思源笔记安装在我指定的存储空间,我一个程序白好一顿查找和折腾。
说下过程给以后的自己提醒避雷,毕竟安装完估计很久很久都不会再折腾了,只剩下使用了。
- 查找了思源笔记官网的 docker 部署,好多内容,好细致。但是我看不懂,也不想跟着哪些步骤走下来,因为我查看了应用中心装完思源笔记后 compose 里面的 yaml 文件也没有那么多的命令。
- 我不会(不知道怎么用)使用 shh 客户端和命令。只想找**式的复制粘贴或者简单修改的 compose 下的 yaml 文件命令复制就好。
- 查找了飞牛论坛和其他 csdn 网站关于思源笔记的部署,都不能用(大概率是我自己没用对)。
- 查找了类似的群晖 compose(项目)部署,威联通 docker,还有极空间 docker 部署
折腾的第一步
- 备份原有数据,我因为安装过飞牛应用中心的思源,在里面存有笔记内容,所以我首先导出了原有的思源笔记数据,作为备份存档,不然迁移或者重装丢失写的东西那就非常糟糕蛋疼了。
- 修改网上复制的思源 yaml 代码。
前后有好多个 yaml 代码,复制到 yaml 里面,构建完成启动,启动后一直重启,我也不知道为啥重启,搜不到原因和解决方案。然后就继续搜索,终于在思源论坛(链滴)里找到了“[(https://ld246.com/member/jsntwdj)jsntwdj]”大佬的帖子。发现里面的关键部分万能适配,太棒了,点赞。
经过修改终于完成了思源笔记的数据在自己指定的存储空间(我的 raid1 模式存储空间)存储的工作。以下我把我这个程序小白对思源的 ymla 代码进行解释说明。让我自己再用的时候能看懂。
下面这个代码可以复制但不保证能正确运行,建议直接复制我插入的 yaml 代码,在根据实际修改。
version: "3.9" 注意:这个"3.9",这是 docker 的版本,可以删除,留着也没关系。
services:
main:
image: b3log/siyuan # docker 镜像 注意:这里是思源笔记的镜像获取方式,冒号后面只写 b3log/siyuan,是从在线仓库里面获取(别人都叫拉取)思源镜像,镜像名就是 b3log/siyuan,如果获取不上,能自己本地下载上思源的镜像文件,那就先要把镜像文件上传到 docker 的本地仓库里,然后把这里的"b3log/siyuan"改成 b3log/siyuan:latest,这个就能读取本地的镜像。改成这样的就算本地镜像的也能拉取最新的镜像进行安装,这是不同代码的使用区别。
container_name: siyuan # 容器名称 注意:这里就是给 docker 里面的思源笔记起个名字,起的名字会在容器里出现。
user: '1000:1000' # 读写用的用户名和用户组 注意:这个没试过改,也不知道有啥影响,我看很多种 nas 上都是使用这样的设定,包括飞牛应用中心里面的思源也是这样,我就没改。
command: ['--workspace=/siyuan/workspace/', '--accessAuthCode=自设密码'] # 指定工作目录:/siyuan/workspace/,指定访问密码(密码自行设定) 注意:这一行的代码需要修改,1、此处的 workspace=/siyuan/workspace,这里不用改,但是要注意,如果要把思源笔记整体放在指定的目录,在 compose(项目)里面创建思源项目的时候就要指定好目录,创建好的这个目录就是以后的思源安装和数据存储目录。2、此处的 accessAuthCode=自设密码,这里我们需要把自设密码这几个字替换成自己准备设定的访问密码,因为飞牛 nas **问思源是需要输入访问的密码的,此处的密码就是访问密码,如果把密码忘了可以在 compose 中的思源里查看。
environment:
- TZ=Asia/Shanghai # 设定时区 注意时区这个东西,我查了上海和北京都是东八区,没有时差,国内这里也不用改,其他地区没试过不知道。
ports: # 端口映射
- 6806:6806 # :之前可以自行设定端口 注意:这个端口应该是思源的标准端口,不用改,我自己没有改动。也最好不改。想改就前后对应的改,比如改成 12345:12345,
volumes: # 文件夹映射
- ./workspace:/siyuan/workspace # :之前可以自行设定路径 “./” 表示当前目录 注意:这里就是我说这个 yaml 为啥是万能适配的关键。这个代码的关键之处只要我们在 compose 下创建思源的时候指定好了目录,这个就自动指向我们指定好的目录。其他好多种 yaml 代码这里都没有用这个命令代码,闹的我这种小白稀里糊涂的。这行代码最简单明了,适合我这种。
restart: unless-stopped # 总是主机重启后启用容器 注意:这里不用改,这里不用改,我以为需要改成 always,但是不用改。
按照以上这个完整的 yaml 代码命令保存构建。
构建完成后,启动容器,我发生了不停循环重启的问题。上网查找后,没找到标准答案,根据一个相关答案和飞牛应用中心安装的思源对比发现,在思源容器命令里多了一点东西,不是只有“--accessAuthCode=自设密码”,然后我把对比发现多的命令就给删除了,删除后,容器正常运行。
只保留:--accessAuthCode=****
综上所述,修改完成后的代码记录如下,以后自己复制就好。
version: "3.9"
services:
main:
image: b3log/siyuan # docker 镜像
container_name: siyuan # 容器名称
user: '1000:1000' # 读写用的用户名和用户组
command: ['--workspace=/siyuan/workspace/', '--accessAuthCode=自设密码'] # 指定工作目录/siyuan/workspace/,指定访问密码(密码自行设定)
environment:
- TZ=Asia/Shanghai # 设定时区
ports: # 端口映射
- 6806:6806 # :之前可以自行设定端口
volumes: # 文件夹映射
- ./workspace:/siyuan/workspace # :之前可以自行设定路径 “./” 表示当前目录
restart: unless-stopped # 总是主机重启后启用容器
记录链滴大佬教程,以备使用;