初始化
This commit is contained in:
106
.cursor/rules/021-deployment.mdc
Normal file
106
.cursor/rules/021-deployment.mdc
Normal file
@@ -0,0 +1,106 @@
|
||||
---
|
||||
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
|
||||
```
|
||||
Reference in New Issue
Block a user