60 lines
2.9 KiB
Markdown
60 lines
2.9 KiB
Markdown
# 需求分析: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`。
|