Appearance
升级
手动升级
要升级 Memos 到最新版本,使用如下步骤:
- 首先,停止并移除旧容器。
sh
docker stop memos && docker rm memos
- 虽然不是必选项,但还是 推荐 你备份数据:
sh
cp -r ~/.memos/memos_prod.db ~/.memos/memos_prod.db.bak
或者是
sh
tar -czvf ~/.memos/memos_prod.db_$(date +%Y%m%d).tar.gz ~/.memos/memos_prod.db
- 接下来,拉取最新的 memos 镜像:
sh
docker pull neosmemo/memos:stable
- 最后,按照 Docker Run 中的步骤启动 Memos。更新好的 Memos 实例将启动并运行,同时具有最新的更新内容和特性。
自动升级
Memos 可以通过 Watchtower 来进行自动升级。
注意
建议在自动更新的同时使用自定义的自动数据备份策略。通过这种方法,你可以在需要时轻松回滚到以前的版本。
虽然自动更新通常来说会正常运行,但还是可能会在你使用 latest
或 stable
标签时出现问题,因为它们会在收到主要或次要版本升级时更新数据库模式的更新。
提示
补丁版本的升级是安全的,因为它们只包含了 bug 修复和一些很小的代码上的修改。
如果想要只接受补丁版本的自动更新,使用一个 主要.次要 的标签即可,例如 0.22
。
下面是一个启动 Memos 和 Watchtower 的 docker-compose.yml
示例。Watchover 会在每天凌晨 4:00 检查更新,如果你需要设置一个自定义的时间,你可以编写你自己的 cron 表达式。
yaml
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"]
提示
通过使用 --label-enable
设置 Watchtower 并使用标签 com.centurylinklabs.watchtower.enable: true
设置 Memos 容器,则只有 Memos 容器会被更新,而其他容器则保持不变。