跳转到内容

升级

生产环境升级使用托管升级器:备份数据、指定目标版本、校验并同步发布文件、执行迁移、检查全部服务。不要重新初始化部署,也不要删除 Docker 数据卷。

1. 升级前备份

升级前先按 备份 & 恢复 完成一次停机全量备份。

2. 执行标准升级

本地 scripts/upgrade.sh 已支持 --version 时,在现有 asp-compose/ 部署目录执行:

bash
./scripts/upgrade.sh --version <version>

<version> 使用目标 GitHub Release 的版本号,不包含 v 前缀。

升级器会自动把 .env 中前后端镜像的标签改为目标版本,同时保留现有镜像仓库地址。使用 digest 固定镜像或无法安全解析镜像地址时,脚本会停止并要求手动处理。

3. 旧部署首次迁移

先用不会执行升级的文本检查确认本地脚本是否支持托管升级:

bash
grep -q -- '--version' ./scripts/upgrade.sh

如果命令没有匹配结果,从目标 Release 下载独立升级脚本和校验文件:

bash
version="<version>"
base_url="https://github.com/FunnyWolf/agentic-soc-platform/releases/download/v${version}"

curl -fL -O "${base_url}/asp-upgrade-${version}.sh"
curl -fL -O "${base_url}/asp-upgrade-${version}.sh.sha256"
sha256sum -c "asp-upgrade-${version}.sh.sha256" &&
  chmod +x "asp-upgrade-${version}.sh" &&
  ./asp-upgrade-${version}.sh --version "${version}" &&
  rm -f "asp-upgrade-${version}.sh" "asp-upgrade-${version}.sh.sha256"

这一步只需要执行一次。升级成功后,本地 scripts/upgrade.sh 已更新,后续版本使用第 2 步即可。

只有附带独立升级脚本和 SHA-256 文件的 Release 才支持此方式。较早版本仍按对应发布说明中的一次性升级要求处理。

4. 升级器会更新什么

升级器下载目标 Release 的 Compose 发布包和 .sha256,校验通过后备份并更新以下官方管理文件:

  • compose.yaml
  • scripts/
  • .env.example
  • README.md
  • README.zh.md

以下部署状态和用户内容不会被覆盖:

  • .env
  • compose.override.yaml
  • custom/
  • certs/
  • logs/
  • Docker named volumes

升级器随后校验 Compose 配置、拉取镜像、执行数据库迁移、启动服务,并运行 doctor.sh 检查全部官方常驻服务。

5. 自定义 Compose 配置

init.sh 和托管升级器会在文件不存在时创建带说明注释和 services: {} 空映射的 compose.override.yaml。该文件专门供用户维护,升级器永不覆盖。

密码、端口、镜像等已有配置优先写入 .env。只有需要增加 volume、环境变量、command 或其他服务级覆盖时,才编辑 compose.override.yaml

yaml
services:
  asp-web:
    environment:
      EXAMPLE_SETTING: value

不要直接修改官方 compose.yaml;下一次托管升级会用目标 Release 中的版本替换它。

6. 失败与恢复

升级前的官方文件和 .env 会保存在:

text
backups/upgrade-<version>-<timestamp>-<pid>/
  • 下载、SHA-256 校验、文件更新、Compose 配置校验或镜像拉取失败时,脚本会在数据库迁移前自动恢复旧文件。
  • 数据库迁移开始后不自动降级,因为旧镜像可能不兼容新数据库结构。迁移、启动或健康检查失败时,脚本会保留新版文件和备份路径并停止。

迁移开始后的失败应先查看命令输出和服务日志,再依据目标版本发布说明处理,不要直接恢复旧镜像。

7. 升级后检查

升级器会自动运行检查,也可以再次手动执行:

bash
docker compose ps
./scripts/doctor.sh

如果服务异常,查看对应日志:

bash
docker compose logs --tail=100 asp-web
docker compose logs --tail=100 asp-worker-dashboard-cache

生产环境应继续使用同一个 asp-compose/ 目录。默认 Compose project name 来自目录名,修改目录名可能导致 Docker named volume 名称变化,从而看不到原有数据。

下一步

  • 重启 & 运维 — 查看升级后的服务状态、日志和常用重启命令。
  • Dashboard — 进入工作台查看安全运营总览。
  • Case — 了解分析师如何围绕 Case 审查证据和推进处置。