跳转到内容

更新指南

Terminal window
# 拉取最新镜像
docker compose pull
# 重启服务(数据库迁移自动执行)
docker compose up -d
# 验证服务状态
docker compose ps
Terminal window
# 查看后端日志
docker compose logs backend
# 确认迁移成功
docker compose logs backend | grep "migration"
Terminal window
# 设置版本号
export IMAGE_TAG=v1.2.0
# 或在 .env 文件中设置
echo "IMAGE_TAG=v1.2.0" >> .env
# 拉取并重启
docker compose pull
docker compose up -d

直接修改镜像标签:

services:
backend:
image: ghcr.io/leslieleung/glean-backend:v1.2.0
web:
image: ghcr.io/leslieleung/glean-web:v1.2.0
admin:
image: ghcr.io/leslieleung/glean-admin:v1.2.0

预发布版本(alpha/beta/rc)用于测试新功能:

Terminal window
# 使用预发布版本
IMAGE_TAG=v1.3.0-alpha.1 docker compose up -d

如果更新后出现问题,可以回滚到之前的版本:

Terminal window
# 停止服务
docker compose down
# 设置旧版本
export IMAGE_TAG=v1.1.0
# 启动旧版本
docker compose up -d

数据库迁移

如果新版本执行了数据库迁移,回滚可能需要手动处理数据库。建议在更新前备份数据库。

  1. 备份数据

    Terminal window
    docker exec glean-postgres pg_dump -U glean glean | gzip > backup_before_update.sql.gz
  2. 查看变更日志

  3. 检查破坏性变更

    • 注意 Breaking Changes 标记
    • 检查配置变量变更
  4. 准备回滚方案

    • 记录当前版本
    • 确保有有效备份
Terminal window
# 所有服务应该是 healthy 状态
docker compose ps
# 预期输出示例
# NAME STATUS
# glean-backend Up (healthy)
# glean-worker Up
# glean-web Up
# glean-admin Up
# glean-postgres Up (healthy)
# glean-redis Up (healthy)
Terminal window
curl http://localhost/api/health
Terminal window
# 检查是否有错误
docker compose logs --tail=100 backend | grep -i error
# 检查 worker
docker compose logs --tail=100 worker | grep -i error

Watchtower 可以自动更新 Docker 容器:

Terminal window
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--cleanup \
--interval 86400 \
glean-backend glean-web glean-admin glean-worker

建议在以下时间更新:

  • 用户活跃度低的时段
  • 有充足时间处理潜在问题
  • 确保有人员可响应异常