Skip to content

升级

手动升级

要升级 Memos 到最新版本,使用如下步骤:

  1. 首先,停止并移除旧容器。
sh
docker stop memos && docker rm memos
  1. 虽然不是必选项,但还是 推荐 你备份数据:
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
  1. 接下来,拉取最新的 memos 镜像:
sh
docker pull neosmemo/memos:stable
  1. 最后,按照 Docker Run 中的步骤启动 Memos。更新好的 Memos 实例将启动并运行,同时具有最新的更新内容和特性。

自动升级

Memos 可以通过 Watchtower 来进行自动升级。

注意

建议在自动更新的同时使用自定义的自动数据备份策略。通过这种方法,你可以在需要时轻松回滚到以前的版本。

虽然自动更新通常来说会正常运行,但还是可能会在你使用 lateststable 标签时出现问题,因为它们会在收到主要或次要版本升级时更新数据库模式的更新。

提示

补丁版本的升级是安全的,因为它们只包含了 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 容器会被更新,而其他容器则保持不变。

最后更新于: