diff --git a/工程分析/实现方案-2026-05-21-16-34-09.md b/工程分析/实现方案-2026-05-21-16-34-09.md new file mode 100644 index 0000000..1919c9c --- /dev/null +++ b/工程分析/实现方案-2026-05-21-16-34-09.md @@ -0,0 +1,45 @@ +# 实现方案:暂停当前系统服务 + +实现方案文档路径:`工程分析/实现方案-2026-05-21-16-34-09.md` + +## 修改目标 + +停止当前 ReVoxelSeg DICOM 系统运行服务,并验证 `4000` 端口释放。 + +## 涉及路径 + +- `/home/wkmgc/Desktop/ReVoxelSeg_DICOM_Docker/docker_compose.yaml` +- `工程分析/需求分析-2026-05-21-16-34-09.md` +- `工程分析/实现方案-2026-05-21-16-34-09.md` +- `工程分析/测试方案-2026-05-21-16-34-09.md` +- `工程分析/经验记录.md` + +## 技术路线 + +1. 检查 Docker Compose、Docker 容器、`tmux` 会话和 `4000` 端口占用。 +2. 确认当前服务来自独立 Docker 部署。 +3. 在 `/home/wkmgc/Desktop/ReVoxelSeg_DICOM_Docker` 执行 `docker compose -f docker_compose.yaml down`。 +4. 再次检查容器状态、`4000` 端口和健康接口。 + +## 执行步骤 + +- 写入本次工程分析文档。 +- 停止 Docker Compose 服务。 +- 验证 `docker compose ps` 无运行服务。 +- 验证 `ss -ltnp sport = :4000` 无监听。 +- 验证 `http://127.0.0.1:4000/api/health` 不再返回服务响应。 + +## 兼容性与回滚方案 + +- 若需恢复服务,可回到 `/home/wkmgc/Desktop/ReVoxelSeg_DICOM_Docker` 执行 `docker compose -f docker_compose.yaml up -d`。 +- 本次不删除镜像、数据卷或运行态数据。 + +## 预计文件变更 + +- 新增三份工程分析文档。 +- 追加 `工程分析/经验记录.md`。 + +## 提交与部署策略 + +- 按工作流提交本次文档备份。 +- 不重新部署系统,因为本次目标是暂停服务。 diff --git a/工程分析/测试方案-2026-05-21-16-34-09.md b/工程分析/测试方案-2026-05-21-16-34-09.md new file mode 100644 index 0000000..240b9dd --- /dev/null +++ b/工程分析/测试方案-2026-05-21-16-34-09.md @@ -0,0 +1,54 @@ +# 测试方案:暂停当前系统服务 + +测试方案文档路径:`工程分析/测试方案-2026-05-21-16-34-09.md` + +## 静态检查 + +- 检查当前 Docker Compose 服务状态。 +- 检查是否存在 `tmux` 会话。 +- 检查 `4000` 端口监听情况。 + +## 构建检查 + +- 本次不构建前端或后端。 + +## 关键业务场景验证 + +- 停止前确认系统正在运行。 +- 停止后确认 Docker Compose 服务不再运行。 +- 停止后确认健康接口不可访问。 + +## 医学影像数据相关边界验证 + +- 本次不修改 DICOM、STL、项目数据或导出结果。 + +## 部署验证 + +- 本次目标是暂停服务,不重新部署。 +- 若用户后续要求恢复,再启动 Docker Compose 并验证健康接口。 + +## Git/Gitea 备份验证 + +- 只提交本次工程分析文档和经验记录。 +- 不提交视频配音、大型数据或无关工作区变化。 + +## 风险与回归关注点 + +- 停止服务后局域网和公网入口都会不可访问。 +- 需要确认没有其他进程继续占用 `4000`。 + +## 实际验证结果 + +- 停止前检查: + - 独立 Docker Compose 中 `revoxelseg_web` 为 `Up ... (healthy)`,端口映射 `0.0.0.0:4000->4000`。 + - `revoxelseg_frpc` 为 `Up`。 + - 未发现 `tmux` 会话。 + - `4000` 端口存在监听。 +- 已在 `/home/wkmgc/Desktop/ReVoxelSeg_DICOM_Docker` 执行: + - `docker compose -f docker_compose.yaml down` +- 停止后检查: + - `docker compose -f docker_compose.yaml ps` 返回空服务列表。 + - `ss -ltnp 'sport = :4000'` 未发现监听进程。 + - `curl http://127.0.0.1:4000/api/health` 返回连接失败,退出码 `7`。 + - `https://revoxel.huijutec.cn/` 返回 `HTTP/2 502`,说明公网反向代理后端已不可达。 +- 本次按用户要求暂停系统,因此没有重新部署。 diff --git a/工程分析/经验记录.md b/工程分析/经验记录.md index e7f9fbc..7bc9ae9 100644 --- a/工程分析/经验记录.md +++ b/工程分析/经验记录.md @@ -1585,3 +1585,21 @@ C. 解决问题方案 D. 后续如何避免问题 后续生成配音、字幕或二次包装视频时,不能只看 MP4 容器总时长;必须同时检查视频流和音频流时长。若目标是避免片尾空声,应以视频流时长为准;若目标是保留完整旁白,则需要明确允许画面补帧或拉伸。大幅时长差不要依赖静音填充,应优先调整文案长度和 TTS 语速,再做细微 `atempo` 对齐。 + +## 2026-05-21-16-34-09 暂停服务时不应再执行重新部署 + +A. 具体问题 + +用户要求“停一下现在的系统”,目标是暂停当前服务,而项目工作流默认在修改完成后要求重新部署。如果机械执行重新部署,会违背用户本次意图,让系统又重新对外提供访问。 + +B. 产生问题原因 + +项目工作流面向常规功能修改和部署更新,默认以“修改后恢复服务”为完成标准;但本次属于运行态暂停操作,验收标准恰好相反,需要确认 Docker 容器停止、`4000` 端口释放、健康接口不可访问。 + +C. 解决问题方案 + +先检查当前运行来源,确认服务来自 `/home/wkmgc/Desktop/ReVoxelSeg_DICOM_Docker` 的独立 Docker Compose,而不是 `tmux`。随后执行 `docker compose -f docker_compose.yaml down`,同时停止 web 与 frpc 容器。停止后验证 Compose 服务为空、`4000` 端口无监听、本机健康接口连接失败、公网域名返回后端不可达状态。本次在工程分析中明确记录“不重新部署”是按用户要求执行。 + +D. 后续如何避免问题 + +后续遇到“停止、暂停、下线、关闭服务”类请求时,工作流中的重新部署步骤应解释为“运行态验证”,而不是再次启动服务。最终汇报要明确服务已停、恢复命令是什么,以及哪些入口当前不可访问,避免把暂停请求处理成重启请求。 diff --git a/工程分析/需求分析-2026-05-21-16-34-09.md b/工程分析/需求分析-2026-05-21-16-34-09.md new file mode 100644 index 0000000..129d7b1 --- /dev/null +++ b/工程分析/需求分析-2026-05-21-16-34-09.md @@ -0,0 +1,47 @@ +# 需求分析:暂停当前系统服务 + +开始时间:2026-05-21-16-34-09 + +## 原始需求摘要 + +用户要求“停一下现在的系统”,即停止当前正在对外提供访问的 ReVoxelSeg DICOM 系统服务。 + +## 业务目标 + +- 停止当前占用 `4000` 端口的系统服务。 +- 停止公网映射相关的 frpc 容器,避免外部继续访问。 +- 不修改业务源码,不删除数据。 + +## 输入与输出 + +输入: + +- 当前运行状态检查结果。 +- Docker 独立部署目录:`/home/wkmgc/Desktop/ReVoxelSeg_DICOM_Docker`。 + +输出: + +- 当前 Docker Compose 服务停止。 +- `4000` 端口不再监听。 +- 健康接口不可访问,用于确认服务已暂停。 + +## 影响范围 + +- 运行中的 `revoxelseg_web` 与 `revoxelseg_frpc` 容器。 +- 本次工程分析文档与经验记录。 + +## 关键约束 + +- 不执行重新部署,因为用户明确要求停掉系统。 +- 不提交或回滚工作区内已有无关删除和未跟踪文件。 +- 不删除 Docker 镜像、数据卷或项目数据。 + +## 风险点 + +- 停止 frpc 后公网域名将不可访问。 +- 停止 web 容器后局域网 `4000` 入口将不可访问。 +- 若另有非 Docker 服务占用端口,需要额外排查。 + +## 默认假设 + +- “当前系统”指当前占用 `4000` 端口并处于 healthy 状态的 Docker 独立部署。