107 lines
2.6 KiB
Plaintext
107 lines
2.6 KiB
Plaintext
---
|
|
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
|
|
```
|