69 lines
3.1 KiB
Markdown
69 lines
3.1 KiB
Markdown
# 测试方案:Docker 双环境部署与 FRPC 公网映射
|
||
|
||
测试方案文档路径:`工程分析/测试方案-2026-05-21-10-38-49.md`
|
||
|
||
## 静态检查
|
||
|
||
- 检查 Dockerfile 路径、工作目录、复制路径和启动命令。
|
||
- 使用 `docker compose -f Docker部署/本机/docker_compose.yaml config` 校验本机 Compose。
|
||
- 使用 `docker compose -f Docker部署/威联通NAS/docker_compose.yaml config` 校验 NAS Compose。
|
||
- 确认 frpc 配置包含:
|
||
- `serverAddr = "82.157.255.195"`
|
||
- `serverPort = 7000`
|
||
- `auth.token = "en.xjtu.edu.cn"`
|
||
- `localIP = "revoxelseg_web"`
|
||
- `localPort = 4000`
|
||
- `remotePort = 10008`
|
||
|
||
## 构建检查
|
||
|
||
- 在 `WebSite/` 下执行 `npm run lint`。
|
||
- 在 `WebSite/` 下执行 `npm run build`。
|
||
- 使用本机 Compose 执行 Docker 镜像构建。
|
||
|
||
## 关键业务场景验证
|
||
|
||
- 容器启动后访问 `/api/health` 返回 `ok: true`。
|
||
- 首页 `/` 返回 `200 OK`。
|
||
- 默认项目数据可由容器读取。
|
||
- 本机端口 `4000` 可访问。
|
||
|
||
## 医学影像数据相关边界验证
|
||
|
||
- 确认默认 DICOM 与 STL 目录被复制进镜像,运行态数据目录挂载不覆盖默认演示资产。
|
||
- 确认 `WebSite/data` 和 `WebSite/exports` 被挂载为持久化目录,避免容器重建后用户项目和导出结果完全丢失。
|
||
|
||
## 部署验证
|
||
|
||
- 停止旧 tmux 服务后,使用本机 Docker Compose 启动服务。
|
||
- 验证 `http://127.0.0.1:4000/api/health`。
|
||
- 验证 `http://127.0.0.1:4000/`。
|
||
- 查看 `revoxelseg_frpc` 日志,确认 frpc 已执行并尝试连接服务端。
|
||
|
||
## Git/Gitea 备份验证
|
||
|
||
- 仅暂存本次 Docker 部署文件与工程分析文档。
|
||
- Commit message 包含 `2026-05-21-10-38-49` 与简要描述。
|
||
- 推送到 `http://192.168.31.5:5002/admin/REVOXELSEG_DICOM.git`。
|
||
|
||
## 风险与回归关注点
|
||
|
||
- Docker 镜像构建时间和体积受默认医学数据大小影响。
|
||
- frpc 公网访问依赖远端 FRP 服务和 NPM 反向代理,若服务端不可用,本机健康检查仍应通过。
|
||
- 容器运行后不要再同时启动 tmux 版 4000 服务,以免端口冲突。
|
||
|
||
## 实际执行结果
|
||
|
||
- 已先停止旧 `tmux` 运行服务,4000 端口空闲后再启动 Docker Compose。
|
||
- `npm run lint`:通过。
|
||
- `npm run build`:通过,仅保留 Vite chunk size 提示。
|
||
- `docker compose -f Docker部署/本机/docker_compose.yaml config`:通过,frpc 远端端口为 `10008`。
|
||
- `docker compose -f Docker部署/威联通NAS/docker_compose.yaml config`:通过,NAS 版路径展开为 `/share/Container/revoxelseg_dicom`。
|
||
- `docker compose -f Docker部署/本机/docker_compose.yaml up -d --build`:通过。
|
||
- `revoxelseg_web`:状态 healthy,端口映射为 `0.0.0.0:4000->4000/tcp`。
|
||
- `revoxelseg_frpc`:日志显示 `login to server success` 与 `[ReVoxelSeg_DICOM] start proxy success`。
|
||
- `curl http://127.0.0.1:4000/api/health`:返回 `{"ok":true,"service":"revoxelseg-dicom"}`。
|
||
- `curl http://127.0.0.1:4000/`:返回 `200 OK`。
|
||
- `curl http://192.168.3.11:4000/`:返回 `200 OK`。
|
||
- `curl https://revoxel.huijutec.cn/`:返回 `200 OK`,响应头包含 `x-served-by: revoxel.huijutec.cn`。
|