# 数字分身测试环境部署 + 修复概览(2026-07-17)
## 本次动作:把上一轮改动真正发到测试环境
测试环境:`geo-server`(192.168.1.188) 上 `/root/avatar-test`,docker-compose 跑
`avatar-backend`(:8011) + `avatar-frontend`(:8099)。
访问地址:**http://192.168.1.188:8099/**(短信登录页:`/#/login/sms`)
已上线内容(上一轮你质疑的"创建覆盖/删除/去掉会会资料/真实短信"相关代码):
- `AvatarManage.vue`:去掉"我的会会资料",改为全部分身列表,每张带删除+二次确认
- `store/avatar.ts`:新增 `removeAvatar`
- `backend/routers/avatars.py`:删除级联清理(知识库/切片/问答对/授权)
- `backend/routers/huihui_auth.py`:真实生产调用优先,`DEV_MOCK` 仅兜底
## 端到端验证(已通过)
| 项 | 结果 |
|---|---|
| 后端 health | ✅ |
| 分身列表 `GET /api/avatar` | ✅ 返回已 seed 分身 |
| 短信发码(开发态) | ✅ 回显 `devCode` |
| 短信登录→`/me` | ✅ 落库 dev 用户 + 会话 |
| 删除级联 | ✅ 创建→删除→GET 404 |
| 前端页面 `:8099` | ✅ 稳定 Up,`
会会数字分身` |
## 部署中踩的两个坑(已修复,记进项目记忆)
1. **环境变量被 rsync 覆盖**:本机 compose 不含 env,把远端原 `HUIHUI_DEV_MOCK`/`EMBEDDING_*` 丢了。
修复:从运行容器 `docker inspect` 导出 4 个变量到远端 `.env`,compose 改用 `env_file` 引用;`.env` 加进 `.dockerignore`;本机同步加 `env_file`+`.gitignore` 防再丢。
2. **前端容器反复 Restarting**:nginx 1.31.3 写 pid 文件被测试服务器 Docker 的 **seccomp 拦截 `pwrite`** 致命退出(老版 nginx 用 `write()` 且只告警,故之前 46h 正常)。
修复:前端 `Dockerfile` 锁定 `nginx:1.28-alpine`(远端已缓存,无需联网);`nginx.conf` 改为完整主配置覆盖 `/etc/nginx/nginx.conf`。
## 关于"参考会会接口文档"(真实短信仍待你提供)
- 仓库 `docs/production-interface-inventory.md` **只文档化了 `/open/login/token`(密码登录),没有短信端点**。
- 已实现的真实生产调用:短信**登录**复用文档化的 `/open/login/token`,仅 `loginType/grantType=sms`(与会会开放平台一致范式);**发送验证码**端点走可配置 `HUIHUI_SMS_SEND_PATH`(默认 `/open/login/sms/send` 在生产返回 404)。
- 仍阻塞:会会**真实短信发送端点路径**(如 `/open/sms/send` 等)+ 开放平台凭证(appId/accessId/accessSecret/clientCode)未到位。你提供后,关掉 `HUIHUI_DEV_MOCK`、写进 compose env、重建后端即可真接通会会生产库并同步用户资料。
## 改动文件
- `digital-avatar-app/Dockerfile`(锁 nginx 1.28-alpine)
- `digital-avatar-app/nginx.conf`(完整主配置,覆盖默认 nginx.conf)
- `digital-avatar-app/docker-compose.yml`(backend 加 `env_file: - .env`)
- `digital-avatar-app/.gitignore`、`digital-avatar-app/backend/.dockerignore`(忽略 `.env`)