用Trilium做笔记、知识库管理估摸着也有个把月了把,期间也试过其他笔记软件,如:obsidian、joplin等等,不过都不太满意。我个人还是比较喜欢notion这种all in one的软件,但是notion不能自部署,所以就没有考虑了。

上次在Trilium那边提了常驻任务栏的issue后得到了作者的肯定说之后某个版本会加进来,所以一直有在关注trilium的更新情况。就在上个星期作者发布了0.49.3的beta,增加了文档分享和常驻任务栏的功能。虽然还有一些bug没修复但是还是挺想尝试的,但是中文版的翻译者nriver觉得很多bug没修复而且是beta版本所以一直没更新。

终于昨天作者发布了0.49.7的正式版本,nriver终于更新了新版本。在升级过程中踩了一些坑这里记录一下。

备份数据

⚠️
进行升级操作前一定要备份好数据!

首先当然是备份数据了,先把docker停掉,然后关闭桌面端后备份软件目录下或者服务端的trilium-data目录下的document.db文件即可。我这里保险起见,直接备份了整个trilium-data目录

下载新版本的PC端

进中文翻译版的github页面直接下来最新的relasea版本就可以了。

删掉旧容器

进入vps后使用sudo docker rm -f tmserver删除旧容器,tmserver为容器名称也可以填容器ID,如果不知道自己的容器名称或者ID可以使用sudo docker ps -a来查看所有容器

更新镜像

我这里踩了个大坑,现在还不知道怎么回事。

昨天晚上nriver发布了新版本后我第一时间准备进行更新,为了保险起见,我选择直接删掉旧的镜像重新下载

sudo docker rmi nriver/trilium-cn
sudo docker pull nriver/trilium-cn

但是,进行到这里的时候我发现镜像并没有更新,使用sudo docker image ls 可以查看镜像的信息。我反复试了好久,增加latest标签、更换镜像源、使用加速器都不起作用。镜像的更新时间始终显示为6个星期前,也就是上个版本。而且运行信息显示的版本号也不太对。

后来我上群里跟nriver说了一下,他搞到凌晨1点重新打包了镜像。

但是我第二天pull镜像的时候还是旧版本,后来我在hub.docker.com上看docker信息的时候发现有个DIGEST参数,而且在拉去镜像的时候也会显示每个版本的DIGEST信息,所以我试着查了下这东西的相关信息,发现可以手动拉去DIGEST,只要在使用pull的时候加上DIGEST字符串即可。所以我做了以下尝试

# 通过在镜像名称后面增加@sha256:305e882,DIGEST的字符串即可拉取
sudo docker pull nriver/trilium-cn@sha256:305e882bc24da9da2e24391054a7b187bc25e9e388ed007fb2530b3ed854ca2f
# 但是这样拉取的镜像TAG是NONE的,我在run的时候报错了,所以我给他加了个latest标签,tag后面是镜像的ID,然后是名称加Tag
sudo docker tag 61be0df88ced nriver/trilium-cn:latest

做完这些后我使用run命令重新成功启动了tmserver