AgentEvalTool/docs/deployment/volcengine-102-v1.0.md

84 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# volcengine-102 正式线部署指南
**状态**:部署流程已实现;正式主机与密钥仍需由运维环境注入。
**Compose**`deploy/volcengine-102/docker-compose.yml`
**入口脚本**`scripts/deploy-volcengine-102.sh`
## 1. 部署边界
正式线使用两个容器:`agenteval`(端口 `8002`)和 `openclaw-eval`(端口 `28789`。SQLite 数据保存在 Docker named volume 中;生产 `.env` 不从代码仓库同步,必须预先放在远端:
```text
/opt/agenteval/deploy/volcengine-102/.env
```
环境变量模板见 [`deploy/volcengine-102/.env.example`](../../deploy/volcengine-102/.env.example)。正式域名、API Key、OpenClaw token 和 webhook secret 不得写入 Git。
## 2. 首次准备
在正式主机完成 Docker/Compose、SSH 和镜像仓库访问配置,然后建立远端目录并准备 `.env`。本地只需要配置 SSH 别名或地址:
```bash
export AGENTEVAL_PROD_HOST=volcengine-102
export AGENTEVAL_PROD_DIR=/opt/agenteval
export AGENTEVAL_PROD_BACKUP_DIR=/var/backups/agenteval
```
首次正式发布前必须确认:
- 生产 `.env` 已填写非空 `AGENTEVAL_API_KEY`、`AGENTEVAL_SECRET_KEY` 和 OpenClaw token。
- 生产域名已加入 `AGENTEVAL_ALLOWED_ORIGINS`
- 正式主机可拉取 `registry.solahqb22.cn/sola/openclaw:latest`
- Docker named volume 和备份目录具备写权限。
## 3. 发布流程
发布必须基于已提交的 Git 版本;脚本会拒绝存在 tracked 未提交修改的工作区。推荐使用版本号加 commit 作为不可变镜像标签:
```bash
scripts/deploy-volcengine-102.sh --dry-run --tag 0.8.0-6248568
scripts/deploy-volcengine-102.sh --tag 0.8.0-6248568
```
脚本依次执行SSH 检查 → 版本读取 → 远端 `.env` 检查 → 同步已提交源代码 → 备份数据 volume → 远端构建带版本元数据的镜像 → 启动双容器 → 等待健康接口 → 校验版本/commit → 鉴权 API 冒烟。
后端启动入口 [`scripts/production-entrypoint.sh`](../../scripts/production-entrypoint.sh) 的规则是:
- 全新数据库:创建初始 SQLModel schema记录当前 Alembic 基线,再执行后续迁移。
- 旧版无 `alembic_version` 的数据库:保留旧数据,记录基线,再执行后续迁移。
- 已有 Alembic 版本的数据库:只执行 `alembic upgrade head`
## 4. 回滚
回滚只切换应用镜像,不自动降级数据库:
```bash
scripts/deploy-volcengine-102.sh --rollback 0.8.0-previous
```
每次发布和回滚前都会在远端备份 named volume 到 `AGENTEVAL_PROD_BACKUP_DIR`。如果某个版本包含不可逆数据迁移,应先停止服务、恢复匹配的数据备份,再启动旧镜像;不得只回滚代码而忽略数据库版本。
## 5. 发布后检查
```bash
ssh "$AGENTEVAL_PROD_HOST" \
'cd /opt/agenteval && docker compose -f deploy/volcengine-102/docker-compose.yml ps'
```
至少验证:`/api/health`、`/api/targets`、`/api/scenarios`、`/api/runs`、`/api/campaigns`、`/api/intelligent-evals`、`/api/model-configs` 和 `/openclaw/`。发现异常时保留部署输出、容器日志和备份文件,再执行回滚判断。
## 6. 线路关系
```mermaid
flowchart LR
Commit[已提交 Git 版本] --> Dev[scripts/deploy-t480.sh]
Dev --> DevCheck[t480 健康检查与业务冒烟]
DevCheck --> Tag[Gitea Tag / 发布审批]
Tag --> Prod[scripts/deploy-volcengine-102.sh]
Prod --> Backup[备份 named volume]
Backup --> Migrate[Alembic upgrade head]
Migrate --> Smoke[正式线 API / OpenClaw 冒烟]
Smoke --> Live[正式服务]
Smoke --> Rollback[旧镜像 + 数据备份恢复]
```