2026-05-21-10-38-49 新增Docker部署与FRPC映射

This commit is contained in:
2026-05-21 10:50:24 +08:00
parent e4a403f015
commit b027f50118
12 changed files with 554 additions and 2 deletions

View File

@@ -0,0 +1,59 @@
# 需求分析Docker 双环境部署与 FRPC 公网映射
开始时间2026-05-21-10-38-49
## 原始需求摘要
用户要求先停掉当前程序运行服务,然后新建一个部署文件夹,为项目补充两种 Docker 部署方式:
- 本机 Docker 部署。
- 威联通 NAS Container Station / QTS 容器工作站部署。
同时需要在 `docker_compose.yaml` 中直接写入 frpc 配置,将本项目容器内访问端口映射到 FRP 服务端 `82.157.255.195:7000`,并将远端 TCP 端口设置为 `10008`。用户已在 NPM 反向代理中配置 `revoxel.huijutec.cn` 指向远端 `10008`,最终希望既可通过 `http://192.168.3.11:4000/` 局域网访问,也可通过 `revoxel.huijutec.cn` 访问。
## 业务目标
将当前依赖 `tmux + npm run serve` 的部署方式升级为可复制、可迁移的容器化部署方案,降低新环境构建成本,并兼容 NAS 的 Container Station 使用习惯。
## 输入与输出
输入:
- 当前项目源码、默认 DICOM 数据 `Head_CT_DICOM/`、默认 STL 数据 `Head_CT_ReConstruct/`
- 用户给出的 frpc 连接配置、token、远程端口和 QNAP 部署样例。
输出:
- Docker 镜像构建文件。
- 本机 `docker_compose.yaml`
- 威联通 NAS / QTS `docker_compose.yaml`
- 部署说明文档。
- 工程分析记录、测试记录与经验记录。
## 影响范围
- 新增 Docker 部署相关目录和文件。
- 新增 Docker 构建上下文忽略规则。
- 不改变前后端业务源码,不改变 DICOM/STL 处理逻辑。
- 当前运行服务从 tmux 模式切换到 Docker Compose 模式。
## 关键约束
- 当前服务必须先停止,避免端口 4000 冲突。
- frpc 配置直接写在 Compose 文件内,不依赖外部 `frpc.toml`
- NAS 版 Compose 需要使用绝对路径,适配 QTS Container Station 不一定从项目根目录执行的情况。
- 默认演示数据必须在容器中可用;运行态 `WebSite/data``WebSite/exports` 需要可持久化。
- 提交时避免混入既有无关删除、测试压缩包和软著目录。
## 风险点
- Docker 构建上下文包含 DICOM/STL 默认数据,镜像体积会偏大,但这是新环境默认项目可用的代价。
- frpc 连接依赖公网服务器、token、远端端口占用和 NPM 反向代理配置,本地只能验证容器启动,公网域名需结合服务器侧状态确认。
- QNAP 版绝对路径需要用户将项目放到约定目录 `/share/Container/revoxelseg_dicom`,否则需要改 Compose 中路径。
- 当前服务使用 TypeScript `server.ts` + `tsx` 运行,生产镜像需要保留运行时所需依赖。
## 默认假设
- 公网域名由用户的 NPM 反向代理处理 HTTPS 或 HTTP 入口,项目容器只需暴露 HTTP 4000。
- frpc 远端端口固定使用 `10008`
- 本机部署目录可使用相对路径挂载运行态数据NAS 部署使用 `/share/Container/revoxelseg_dicom`