# 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 构建会同步包含以下能力: - 二维逆向分割映射按实体填充显示,导出的分割 Label Map 也按填充区域写入。 - 模型位姿支持以模型中心沿 X/Y/Z 轴镜像翻转,保存、项目库预览和导出均沿用该位姿。 - “构件分别导出”会把所有构件 NIfTI 文件集中到导出包内的 `segmentation-parts/` 目录。 - 项目库 DICOM 首页支持滚轮缩放、拖拽平移和位置重置。 - 项目库与工作区的 DICOM 切片编号按医学影像顺序显示,滑条使用非进度条样式。 - 项目库支持锁定/解锁项目、筛选未上锁项目,并在锁定时保存位姿快照到 `项目数据/锁定结果/`。 - 逆向工作区“构件层级”支持一键显示或隐藏全部构件;切片滑条顶部为第 1 张,向下查看到第 N 张。 - 逆向分割映射视图按当前可见构件加载高精度 STL 预览;“可见类别 + 构件分别导出”严格只导出当前眼睛打开的构件。 ## 一、本机部署 在项目根目录执行: ```bash docker compose -f Docker部署/本机/docker_compose.yaml up -d --build ``` 查看状态: ```bash 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 ``` 访问地址: ```text http://192.168.3.11:4000/ http://127.0.0.1:4000/ ``` 公网访问需等待 FRPC 在线,并确认 NPM 反向代理已将 `revoxel.huijutec.cn` 转发到 FRP 服务端 `10008`: ```text https://revoxel.huijutec.cn/ ``` 停止: ```bash docker compose -f Docker部署/本机/docker_compose.yaml down ``` ## 二、威联通 NAS / QTS Container Station 部署 建议把完整项目放到: ```text /share/Container/revoxelseg_dicom ``` 然后在 QTS Container Station 中创建应用,选择或粘贴: ```text /share/Container/revoxelseg_dicom/Docker部署/威联通NAS/docker_compose.yaml ``` 也可通过 SSH 执行: ```bash 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部署/本机/data` - `Docker部署/本机/exports` - `Docker部署/本机/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 配置为: ```toml 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 部署回退 若需要临时回退到旧部署方式: ```bash 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` 警告。