Memos升级指南
Memos服务器如何升级?
要将 Memos 升级到最新版本,请按照以下步骤操作:
首先,停止并删除旧的容器:
docker stop memos && docker rm memos
虽然不是强制的,但建议备份您的数据库:
cp -r ~/.memos/memos_prod.db ~/.memos/memos_prod.db.bak
或者
tar -czvf ~/.memos/memos_prod.db_$(date +%Y%m%d).tar.gz ~/.memos/memos_prod.db
接下来,拉取最新的 Memos 镜像:
docker pull neosmemo/memos:stable
最后,按照 Docker Run 部分的步骤启动 Memos。升级后的 Memos 实例将以最新的增强功能和特性运行。
Memos 可以通过 Watchtower 实现自动升级。
caution
建议您在启用自动升级的同时,设置自定义的自动数据备份策略。这样可以在需要时轻松回滚到以前的版本。虽然自动更新通常运行良好,但如果使用 latest 或 stable 标签,可能会因为接收到数据库架构变化的主版本或次版本升级而引发问题。
note
补丁版本升级是安全的,因为它们仅包含错误修复和代码的小改动。如果您希望仅接收补丁版本的自动更新,可以使用 主版本号.次版本号 标签,例如 0.22。
以下是一个示例 docker-compose.yml
文件,用于启动 Memos 和 Watchtower。Watchtower 将每天凌晨 4 点检查更新。如果需要设置自定义计划,可以编写自己的 cron 表达式。
services:
memos:
image: neosmemo/memos:stable
labels: { com.centurylinklabs.watchtower.enable: true }
container_name: memos
hostname: memos
restart: unless-stopped
ports: ["5230:5230"]
volumes:
- ~/.memos:/var/opt/memos
watchtower:
image: containrrr/watchtower:1.7.1
container_name: watchtower
restart: unless-stopped
command: --stop-timeout 60s --cleanup --schedule "0 0 4 * * *" --label-enable
volumes: ["/var/run/docker.sock:/var/run/docker.sock"]
tip
通过在 Watchtower 中设置 --label-enable 并为 Memos 容器添加标签 com.centurylinklabs.watchtower.enable: true,仅 Memos 容器会被更新,其他容器不会受到影响。