Memos 服务器如何升级?

Viewed 4

Memos升级指南

1 Answers

Memos服务器如何升级?

升级指南

手动升级

要将 Memos 升级到最新版本,请按照以下步骤操作:

  1. 首先,停止并删除旧的容器:

    docker stop memos && docker rm memos
    
  2. 虽然不是强制的,但建议备份您的数据库:

    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
    
  3. 接下来,拉取最新的 Memos 镜像:

    docker pull neosmemo/memos:stable
    
  4. 最后,按照 Docker Run 部分的步骤启动 Memos。升级后的 Memos 实例将以最新的增强功能和特性运行。


自动升级

Memos 可以通过 Watchtower 实现自动升级。

caution
建议您在启用自动升级的同时,设置自定义的自动数据备份策略。这样可以在需要时轻松回滚到以前的版本。

虽然自动更新通常运行良好,但如果使用 lateststable 标签,可能会因为接收到数据库架构变化的主版本或次版本升级而引发问题。

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 容器会被更新,其他容器不会受到影响。

Related Questions