diff --git a/project-docs/AI合同起草与审查助手-当前工作进度保存-2026-05-11.md b/project-docs/AI合同起草与审查助手-当前工作进度保存-2026-05-11.md index db279c25..6cb80464 100644 --- a/project-docs/AI合同起草与审查助手-当前工作进度保存-2026-05-11.md +++ b/project-docs/AI合同起草与审查助手-当前工作进度保存-2026-05-11.md @@ -4416,3 +4416,36 @@ - 后续建议: - 先恢复或重新部署 `192.168.3.90` 上的 ai-contract 后端、前端和 worker 容器,再补当天远程冒烟。 - 若继续开发,建议从增强项中选择:条款推荐行为漏斗、通用质量评测域、专业交付增强、全量法规向量化、真实支付、电子签章或小程序。 + +## 2026-05-22 远程测试服务器 ai-contract 容器恢复与自启动策略修复 + +- 问题现象: + - `192.168.3.90:22` 可连。 + - `192.168.3.90:8001`、`192.168.3.90:3003` 初始不可连。 + - 只读检查显示 `ai-contract-backend-restore`、`ai-contract-frontend`、`ai-contract-legal-change-worker` 均为退出状态,`gitea` 仍运行。 +- 根因判断: + - 三个 ai-contract 容器的 Docker restart policy 均为 `restart=no`。 + - `ai-contract-frontend` 和 `ai-contract-legal-change-worker` 退出时间与服务器/Docker 服务恢复时间接近,属于容器没有自动拉起。 + - `ai-contract-backend-restore` 日志显示应用此前正常启动并服务过,`oom=false`,不是业务代码启动失败。 +- 已执行恢复: + - 对三个容器执行 `docker update --restart unless-stopped`。 + - 启动 `ai-contract-backend-restore`、`ai-contract-frontend`、`ai-contract-legal-change-worker`。 +- 已修复部署脚本: + - `scripts/deploy-ai-contract-restore-docker.ps1` + - 后端、前端、法规影响 worker 的 `docker run -d` 均已补 `--restart unless-stopped`。 + - 以后使用该脚本重建容器时,不会再恢复成 `restart=no`。 +- 验证结果: + - `ai-contract-backend-restore restart=unless-stopped status=running` + - `ai-contract-frontend restart=unless-stopped status=running` + - `ai-contract-legal-change-worker restart=unless-stopped status=running` + - `http://192.168.3.90:8001/health` 返回 HTTP 200,`status=ok`。 + - `http://192.168.3.90:8001/api/v1/system/readiness` 返回 HTTP 200,`status=ready`。 + - `http://192.168.3.90:3003/documents/new` 返回 HTTP 200。 + - `http://192.168.3.90:3003/documents/contract-123/edit` 返回 HTTP 200。 + - `http://192.168.3.90:3003/quality-evals` 返回 HTTP 200。 + - `http://192.168.3.90:3003/legal-change-impacts` 返回 HTTP 200。 + - `http://192.168.3.90:3003/operation-kpis` 返回 HTTP 200。 +- 当前结论: + - 3.90 服务器本身没有故障。 + - 这次问题已经从“手动恢复”提升到“部署脚本后续重建也保留自启动策略”。 + - 2026-05-22 远程 HTTP 冒烟已补齐。 diff --git a/project-docs/AI合同起草与审查助手-法律文书能力吸收开发方案-代码对齐复核-2026-05-22.md b/project-docs/AI合同起草与审查助手-法律文书能力吸收开发方案-代码对齐复核-2026-05-22.md index 1a239b06..497bc7eb 100644 --- a/project-docs/AI合同起草与审查助手-法律文书能力吸收开发方案-代码对齐复核-2026-05-22.md +++ b/project-docs/AI合同起草与审查助手-法律文书能力吸收开发方案-代码对齐复核-2026-05-22.md @@ -158,6 +158,24 @@ Generating static pages (40/40) 若后续要恢复远程验证,应先重启或重新部署 `ai-contract` 后端、前端和 worker 容器,再复跑 `/health`、`/documents/new`、`/documents/[id]/edit`、`/quality-evals`、`/legal-change-impacts` 等路由烟测。 +### 7.1 同日修复记录 + +后续已确认服务器本身没有故障,问题来自三个 ai-contract 容器的 Docker restart policy 为 `restart=no`。已执行以下修复: + +- 对 `ai-contract-backend-restore`、`ai-contract-frontend`、`ai-contract-legal-change-worker` 执行 `docker update --restart unless-stopped`。 +- 启动三个容器,当前均为 `status=running`。 +- 修复 `scripts/deploy-ai-contract-restore-docker.ps1`,使后续通过该脚本重建容器时也自动带 `--restart unless-stopped`。 +- 重新验证远程 HTTP: + - `http://192.168.3.90:8001/health`:HTTP 200。 + - `http://192.168.3.90:8001/api/v1/system/readiness`:HTTP 200。 + - `http://192.168.3.90:3003/documents/new`:HTTP 200。 + - `http://192.168.3.90:3003/documents/contract-123/edit`:HTTP 200。 + - `http://192.168.3.90:3003/quality-evals`:HTTP 200。 + - `http://192.168.3.90:3003/legal-change-impacts`:HTTP 200。 + - `http://192.168.3.90:3003/operation-kpis`:HTTP 200。 + +因此,2026-05-22 的远程 HTTP 冒烟已在同日补齐。 + ## 八、最终结论 《AI合同起草与审查助手-法律文书能力吸收开发方案-2026-05-20.md》与当前代码整体对齐。 @@ -166,4 +184,3 @@ Generating static pages (40/40) 1. 先恢复 `192.168.3.90` 应用容器,补当天远程冒烟。 2. 再按业务价值选择增强项:条款推荐行为漏斗、通用质量评测域、专业交付增强、全量法规向量化、真实支付、电子签章或小程序。 - diff --git a/scripts/deploy-ai-contract-restore-docker.ps1 b/scripts/deploy-ai-contract-restore-docker.ps1 index 75e5ea17..52afadb7 100644 --- a/scripts/deploy-ai-contract-restore-docker.ps1 +++ b/scripts/deploy-ai-contract-restore-docker.ps1 @@ -327,6 +327,7 @@ mkdir -p "$project/storage" docker run -d \ --name "$backend_container" \ + --restart unless-stopped \ --network host \ --env-file "$project/backend/.env" \ -v "$project/backend:/app" \ @@ -337,6 +338,7 @@ docker run -d \ docker run -d \ --name "$frontend_container" \ + --restart unless-stopped \ -p "$frontend_host_port:$frontend_container_port" \ -v "$project/frontend:/app" \ -w /app \ @@ -346,6 +348,7 @@ docker run -d \ if [ "$skip_legal_change_worker" != "true" ]; then docker run -d \ --name "$worker_container" \ + --restart unless-stopped \ --network host \ --env-file "$project/backend/.env" \ -e LEGAL_CHANGE_IMPACT_WORKER_ENABLED=true \