2.2 KiB
2.2 KiB
Compose 部署基线验证
验证日期:2026-09-22
验证范围:MySQL 健康检查、迁移、运行账号权限收紧、schema 核验、Orbit 启动、就绪探针和核验失败门禁。
验证环境:Docker Desktop、MySQL 8.4、当前 orbit:dev 镜像。
已通过
静态配置门禁
使用临时数据库用户名、密码和镜像标签执行:
docker compose -f deploy/docker-compose.yml config
结果:Compose 配置成功展开,五个服务的依赖条件、健康检查、数据卷、端口和运行时 DSN 均可解析;密码没有写入仓库。
同时通过:
git diff --check
make docs-check
正常启动链路
在一次性 MySQL 8.4 和临时数据库卷中执行 Compose 服务链。当前开发机已有大量 Docker 自定义网络,地址池不足,因此本次测试只在临时覆盖文件中把容器放到 Docker 默认 bridge 网络并添加链接;生产 Compose 文件仍使用标准项目隔离网络,服务依赖语义没有改变。
验证顺序和结果:
mysql通过mysqladmin ping健康检查。migrate使用 root 迁移连接完成当前迁移。grant撤销运行账号的额外数据库权限,仅保留运行所需的 DML 权限。verify使用运行账号完成orbit-admin verify。orbit在前述一次性服务成功后启动。GET /health/ready返回成功。
最后输出:
compose-e2e=passed readiness=ok grant=ok
失败门禁
第二次使用临时 MySQL,故意让 verify 使用错误的运行账号密码。迁移成功后,verify 以退出码 1 结束,Compose 报告:
service "verify" didn't complete successfully: exit 1
Orbit 没有进入运行状态,证明 schema 核验失败不会把未核验节点拉入流量。
尚未由本报告关闭的事项
本报告只证明单节点 Compose 的启动顺序和失败边界,不代表生产高可用。数据库自动切换、跨故障域多节点、正式 Secret 注入、反向代理 TLS、备份恢复、容量余量和 RPO/RTO 仍按生产验收总清单逐项留证。首次管理员和控制台任务闭环的真实证据见phase-8 控制台闭环。