fix: review-deploy 改 Python 直跑标准(无docker) + 对外地址用主域名+端口禁编造子域名

- QC review-deploy:去 Dockerfile/docker-compose/docker compose ps(测试环境无docker)
- deploy_test + review-deploy:对外地址只用 hrstest.opencomputing.cn:端口,禁止编造子域名
This commit is contained in:
yumoqing 2026-08-22 12:17:40 +08:00
parent dfcde5dd0e
commit 7b3e474b4d
2 changed files with 29 additions and 15 deletions

View File

@ -34,8 +34,10 @@ capability: deploy_capability
### 三、部署后验证(附真实输出,不是预期声明)
- **检查进程**`ssh hrs@hrstest "ps -ef | grep app.py"` 各模块进程确实在跑
- **健康检查**`curl http://127.0.0.1:{端口}/healthz` 返回 200
- **健康检查**`curl http://hrstest.opencomputing.cn:{端口}/healthz` 返回 200
- **DB 连通**`mysql -h localhost -u test -ptest123 hrs -e "SHOW TABLES"` 看到各模块表
- **对外地址只用主域名+端口**`http://hrstest.opencomputing.cn:{端口}`(或内网 `http://{IP}:{端口}`)。
**禁止编造子域名**(如 `selfservice.hrstest.opencomputing.cn`)——子域名未配 DNS/nginx必然无法解析会被 QC 退回。
### 四、产出交付物
- 部署文档deploy-test-env.md真实部署步骤 + 端口表 + 验证输出)

View File

@ -1,6 +1,6 @@
---
name: review-deploy
description: QC 审查部署工程师agent.deploy_test/deploy_prod产出的检查清单——部署配置落盘、部署文档、真实部署证据健康检查/服务启动/DB连通。触发审查 deploy_test / deploy_prod 阶段交付件。
description: QC 审查部署工程师agent.deploy_test/deploy_prod产出的检查清单——部署配置落盘、部署文档、真实部署证据进程/健康检查/DB连通。触发审查 deploy_test / deploy_prod 阶段交付件。
capability: task_capability
---
@ -8,33 +8,45 @@ capability: task_capability
被查对象agent.deploy_test测试环境、agent.deploy_prod生产环境。审查其产出时**以真实部署证据为准,不只看文档声明**。
## 测试环境hrstest部署方式Python 直跑,无 docker
- 测试机 `hrstest.opencomputing.cn` **没有 docker**,部署一律 Python 直跑:
- 各模块 `app.py`(启动入口)+ `requirements.txt`(依赖)+ `deploy.sh`(建表/装依赖/起服务/写 PID
- **不要要求 Dockerfile / docker-compose / docker compose ps** —— 测试环境根本没有 docker要求这些是错误标准
## 一、部署配置落盘
- 对照 `project-directory-spec` + `webapp-deploy`
- `repos/{项目名}_pc/config/test/`(或 config/prod/Dockerfile、docker-compose.yml、requirements.txt、entrypoint.sh、nginx/default.conf、deploy.sh、init-db.sh
- 所有模块都要纳入部署organization/payroll/recruitment 三服务齐全build context 正确、depends_on 按 DDL 顺序)
- `repos/{项目名}_pc/config/test/` 下:`deploy.sh``requirements.txt``init-db.sh`、各模块 `app.py` 入口说明
- 所有模块都要纳入部署organization/payroll/recruitment/selfservice 各模块 app.py 齐全,端口互不冲突
## 二、部署文档落盘
- `repos/{项目名}_pc/docs/04-deploy/deploy-test-env.md`(或 deploy-prod-env.md
- 生产部署额外:高可用、备份、监控告警、域名证书、发布说明
- 文档里写明:各模块端口表、启动命令、真实部署步骤
## 三、部署前条件检查QC 核查是否做了前置检查)
- 应用是否有部署脚本deploy.sh/Dockerfile/docker-compose/entrypoint/requirements 齐全
- 部署环境是否可用SSH 可达、DB 可用、端口/域名就绪)
- 条件不具备时是否退出报错(不是硬部署)
- 应用是否有部署入口(各模块 app.py / deploy.sh
- 测试机是否可达:`ssh -o BatchMode=yes hrs@hrstest.opencomputing.cn echo ok`
- 条件不具备时是否退出报错冒泡(不是硬部署)
## 四、真实部署证据(关键,禁止纸面部署)
- **必须实际执行部署**docker compose up / bash deploy.sh并附真实输出
- **检查进程**docker compose ps 各服务 healthy、ps 查看进程确实在跑
- **检查外网/访问 URL**对外地址实际连通curl 健康检查返回 200、页面/API 可访问
- 数据库 DDL 执行确认SHOW TABLES 看到三模块表)
- 文档里写"三服务均 healthy / curl 200 / DDL 自动初始化"但标注"未实际执行" → 退回:这是预期不是实测
- **必须实际执行部署**ssh 到测试机跑 deploy.sh / nohup python3 app.py),并附真实输出:
- **检查进程**`ssh hrs@hrstest.opencomputing.cn "ps -ef | grep app.py"` 各模块进程确实在跑(有 PID、端口监听
- **健康检查**`curl http://hrstest.opencomputing.cn:{端口}/healthz` 返回 200**用真实可达地址,见下**
- **DB 连通**`mysql -h localhost -u test -ptest123 hrs -e "SHOW TABLES"` 看到各模块表
- 文档里写"进程已启动 / curl 200 / 表已建"但标注"未实际执行" → 退回:这是预期不是实测
## 五、真实性核查方法
## 五、对外地址规范(关键,防止编造域名)
- 测试环境对外地址**只用主域名 + 端口**`http://hrstest.opencomputing.cn:{端口}`(或内网 `http://{IP}:{端口}`
- **禁止编造子域名**(如 `selfservice.hrstest.opencomputing.cn`)——子域名未配 DNS/nginx必然无法解析
- QC 核实健康检查时,用 `curl http://hrstest.opencomputing.cn:{端口}/healthz` 或内网 IP:端口,不用子域名
## 六、真实性核查方法
- 用 read_file / list_files 验证配置文件真实落盘
- 用 run_shell 在部署环境实际跑 docker compose ps / curl 健康检查,拿真实输出
- 用 run_shell 实际 ssh 到测试机跑 `ps -ef | grep app.py` / `curl 健康检查` / `mysql SHOW TABLES`,拿真实输出
- 生产部署必须有人拍板human gate才验收