--- description: "部署与 DevOps 规范 — Docker Compose/CI-CD/环境管理/PHP+Vue双栈" globs: - "Case-Database-Backend/docker-compose*" - "Case-Database-Backend/Dockerfile*" - ".github/workflows/**" - ".env*" alwaysApply: false --- # 🚢 Deployment Standards (Hyperf + Vue 3) 参考文档: @docs/runbooks/deployment.md ## 环境定义 | 环境 | 用途 | 触发 | 部署方式 | |------|------|------|---------| | Development | 本地开发 | `docker-compose up` | Docker Compose | | Testing | 自动化测试 | PR 创建 | CI Pipeline | | Staging | 预发布验证 | merge to `develop` | Docker Compose / K8s | | Production | 正式环境 | merge to `main` | Docker Compose / K8s | ## 本地开发 ```bash # 一键启动 (Docker Compose) docker-compose up -d # 后端独立运行 cd Case-Database-Backend && php bin/hyperf.php start # 前端独立运行 cd Case-Database-Frontend-user && npm run dev cd ../Case-Database-Frontend-admin && npm run dev # 数据库迁移 cd Case-Database-Backend && php bin/hyperf.php migrate ``` ## Docker 规范 - 使用多阶段构建减小镜像 - 非 root 用户运行 (安全) - 固定依赖版本 (不用 `latest` 标签) - 包含 `.dockerignore` - 健康检查 (`HEALTHCHECK`) - Swoole 进程不需要额外的 Supervisor ## CI/CD 流水线 ``` Push ├─→ Frontend Job: npm ci → lint → test → build └─→ Backend Job: composer install → phpstan → phpunit │ ├─→ Security Audit (PR only) │ └─→ Deploy ├─→ develop → Staging └─→ main → Production ``` 参考配置: `.github/workflows/ci.yml` ## 环境变量管理 | 位置 | 用途 | |------|------| | `.env` (本地) | 开发环境,已 gitignore | | `.env.example` | 变量模板,提交到 Git | | Docker Compose env | 容器编排环境变量 | | K8s Secret / ConfigMap | 生产环境密钥管理 | **规则**: - 所有密钥通过环境变量注入,禁止硬编码 - 定期轮换密钥 - 生产环境使用加密存储 (K8s Secret / Vault) ## 部署检查清单 ### 部署前 - [ ] 后端测试通过 (`composer test`) - [ ] 前端构建成功 (`npm run build`) - [ ] 数据库迁移已准备 - [ ] 环境变量已配置 ### 部署后 - [ ] 健康检查通过 (`/admin/health`) - [ ] 监控无异常 - [ ] 数据库迁移成功 - [ ] WebSocket 连接正常 - [ ] 队列消费进程运行中 ## 回滚策略 ```bash # 代码回滚 git revert HEAD && git push origin main # 数据库回滚 php bin/hyperf.php migrate:rollback --step=1 # Docker 回滚到上一个镜像版本 docker-compose pull && docker-compose up -d ```