ReVoxelSeg DICOM Docker 部署说明
本目录提供两套 Docker Compose 部署方式:
本机/docker_compose.yaml:适合当前开发机或普通 Linux 主机。威联通NAS/docker_compose.yaml:适合 QNAP QTS Container Station,使用/share/Container/revoxelseg_dicom绝对路径。
两套 Compose 都包含:
revoxelseg_web:ReVoxelSeg DICOM 前后端一体服务,容器端口4000。revoxelseg_frpc:FRPC 客户端,将revoxelseg_web:4000映射到82.157.255.195的远程端口10008。
当前 Docker 构建会同步包含以下能力:
- 二维逆向分割映射按实体填充显示,rib、skin 等薄壳或细长构件会做局部实体化兜底,导出的分割 Label Map 也按填充区域写入。
- 模型位姿支持以模型中心沿 X/Y/Z 轴镜像翻转,平移和缩放单击支持
0.001级微调,长按加减会加速连续调整;保存、项目库预览和导出均沿用该位姿;自动拉伸完成后不再在位姿区保留成功提示。 - “构件分别导出”会把所有构件 NIfTI 文件集中到导出包内的
segmentation-parts/目录。 - 项目库 DICOM 首页支持滚轮缩放、拖拽平移和位置重置。
- 项目库与工作区的 DICOM 切片编号按医学影像顺序显示,滑条使用非进度条样式。
- 项目库支持锁定/解锁项目、筛选未上锁项目,并在锁定时保存位姿快照到
项目数据/锁定结果/。 - 逆向工作区“构件层级”支持一键显示或隐藏全部构件;切片滑条顶部为第 1 张,向下查看到第 N 张。
- 逆向分割映射视图按当前可见构件加载高精度 STL 预览,并始终用全部 STL 边界保持统一模型坐标系;实体模式最高使用 80 万三角面预览,“可见类别 + 构件分别导出”严格只导出当前眼睛打开的构件。
- 新增“自动微调匹配工作区”,可从逆向工作区当前位姿进入;默认仅微调平移 X/Y/Z 与缩放,旋转锁定,使用所选骨骼 STL 与 DICOM HU 骨窗进行候选迭代评分,采样切片按数量均匀筛选并真实参与评分,可将最佳位姿写回项目库;结果区支持当前位姿/自动匹配结果双视图对比。
- 大型 STL preview JSON 响应会按浏览器能力 gzip 返回,降低公网 HTTP/2 代理下高精度预览的传输失败概率。
一、本机部署
在项目根目录执行:
docker compose -f Docker部署/本机/docker_compose.yaml up -d --build
查看状态:
docker compose -f Docker部署/本机/docker_compose.yaml ps
docker compose -f Docker部署/本机/docker_compose.yaml logs -f revoxelseg_web
docker compose -f Docker部署/本机/docker_compose.yaml logs -f revoxelseg_frpc
访问地址:
http://192.168.3.11:4000/
http://127.0.0.1:4000/
公网访问需等待 FRPC 在线,并确认 NPM 反向代理已将 revoxel.huijutec.cn 转发到 FRP 服务端 10008:
https://revoxel.huijutec.cn/
停止:
docker compose -f Docker部署/本机/docker_compose.yaml down
二、威联通 NAS / QTS Container Station 部署
建议把完整项目放到:
/share/Container/revoxelseg_dicom
然后在 QTS Container Station 中创建应用,选择或粘贴:
/share/Container/revoxelseg_dicom/Docker部署/威联通NAS/docker_compose.yaml
也可通过 SSH 执行:
cd /share/Container/revoxelseg_dicom
docker compose -f Docker部署/威联通NAS/docker_compose.yaml up -d --build
如果项目目录不是 /share/Container/revoxelseg_dicom,需要同步修改 NAS Compose 中:
build.context/share/Container/revoxelseg_dicom/data/share/Container/revoxelseg_dicom/exports/share/Container/revoxelseg_dicom/locked-results
三、数据持久化
容器内路径:
/app/WebSite/data:项目状态、上传数据和导入缓存。/app/WebSite/exports:导出的 NII/NII.GZ/TAR.GZ 文件。/app/项目数据/锁定结果:项目锁定时保存的位姿与构件样式快照。
本机部署会挂载到:
Docker部署/本机/dataDocker部署/本机/exportsDocker部署/本机/locked-results
NAS 部署会挂载到:
/share/Container/revoxelseg_dicom/data/share/Container/revoxelseg_dicom/exports/share/Container/revoxelseg_dicom/locked-results
默认演示数据 Head_CT_DICOM/ 与 Head_CT_ReConstruct/ 会复制进镜像,用于新环境首次启动后的默认项目。
四、FRPC 映射
Compose 中内置的 FRPC 配置为:
serverAddr = "82.157.255.195"
serverPort = 7000
auth.method = "token"
auth.token = "en.xjtu.edu.cn"
transport.poolCount = 5
transport.heartbeatTimeout = -1
[[proxies]]
name = "ReVoxelSeg_DICOM"
type = "tcp"
localIP = "revoxelseg_web"
localPort = 4000
remotePort = 10008
如果远端端口或代理名称调整,只需修改两份 docker_compose.yaml 中 revoxelseg_frpc 的内嵌配置。
五、旧 tmux 部署回退
若需要临时回退到旧部署方式:
docker compose -f Docker部署/本机/docker_compose.yaml down
cd WebSite
npm run build
npm run serve -- --host 0.0.0.0 --port 4000
六、2026-05-24 交互修正
- 逆向工作区切换构件层级时,可见 STL 构件会显示加载进度,避免高精度预览加载期间误判为构件不显示。
- DICOM 与逆向分割映射画布的滚轮缩放使用非被动 wheel 监听,修正浏览器控制台
Unable to preventDefault inside passive event listener invocation警告。 - rib、skin 等薄壳或细长构件在实体模式和逆向分割映射视图中使用更高精度 STL 预览,并增加局部厚度填充,避免只显示散点或单像素线段。