6.2 KiB
6.2 KiB
OCDP 使用指南
🎯 统一的 docker-compose.yml
现在所有配置都整合在一个文件中,使用 profiles 区分不同运行模式。
🚀 快速开始
方式 1: 使用 Make(推荐)
# 开发模式
make docker-dev
# 生产模式
make docker-prod
# 测试后端
make docker-test-backend
# 测试前端
make docker-test-frontend
方式 2: 使用 Docker Compose
# 开发模式
docker compose --profile dev up
# 生产模式
docker compose --profile production up
# Mock 测试模式(后端)
docker compose --profile mock up backend-mock
# Mock 测试模式(前端)
docker compose --profile mock up frontend-mock
📋 三种运行模式
1. 开发模式(Dev Profile)
特点:
- ✅ 后端 Mock 模式(无需数据库)
- ✅ 热重载(Air + Vite HMR)
- ✅ 快速启动
启动命令:
# 前台运行
docker compose --profile dev up
# 后台运行
docker compose --profile dev up -d
# 或使用 Make
make docker-dev
make docker-dev-bg
访问地址:
服务列表:
backend-dev- 后端开发服务frontend-dev- 前端开发服务
2. 生产模式(Production Profile)
特点:
- ✅ 真实数据库(PostgreSQL + Redis)
- ✅ 完整功能
- ✅ 生产环境配置
启动命令:
# 后台运行
docker compose --profile production up -d
# 或使用 Make
make docker-prod
make docker-up
访问地址:
- 前端:http://localhost:3000
- 后端:http://localhost:8080
- 数据库:localhost:5432
服务列表:
postgres- PostgreSQL 数据库redis- Redis 缓存backend-prod- 后端生产服务frontend-prod- 前端生产服务
3. Mock 测试模式(Mock Profile)
特点:
- ✅ 独立测试单个服务
- ✅ 无外部依赖
- ✅ 快速启动
测试后端:
# 前台运行
docker compose --profile mock up backend-mock
# 后台运行
docker compose --profile mock up -d backend-mock
# 或使用 Make
make docker-test-backend
make docker-test-backend-bg
测试前端:
# 前台运行
docker compose --profile mock up frontend-mock
# 后台运行
docker compose --profile mock up -d frontend-mock
# 或使用 Make
make docker-test-frontend
make docker-test-frontend-bg
🛠️ 常用操作
查看日志
# 查看所有日志
docker compose logs -f
# 查看特定服务日志
docker compose logs -f backend-dev
docker compose logs -f frontend-dev
docker compose logs -f backend-prod
docker compose logs -f backend-mock
# 或使用 Make
make docker-logs
make docker-logs-backend
make docker-logs-frontend
停止服务
# 停止所有服务
docker compose down
# 停止特定 profile 的服务
docker compose --profile dev down
docker compose --profile production down
docker compose --profile mock down
# 或使用 Make
make docker-down
重启服务
# 重启所有运行的服务
docker compose restart
# 重启特定服务
docker compose restart backend-dev
docker compose restart frontend-dev
# 或使用 Make
make docker-restart
make docker-restart-backend
make docker-restart-frontend
构建镜像
# 构建所有镜像
docker compose build
# 无缓存构建
docker compose build --no-cache
# 或使用 Make
make docker-build
make docker-build-no-cache
查看状态
# 查看运行的服务
docker compose ps
# 查看详细状态
make docker-status
🔧 开发工具
启动 pgAdmin 和 Swagger UI
# 需要先启动生产模式
docker compose --profile production --profile tools up -d
# 或使用 Make
make docker-tools
访问地址:
- pgAdmin:http://localhost:5050
- Swagger UI:http://localhost:8081
📊 服务对比表
| 特性 | 开发模式 | 生产模式 | Mock 模式 |
|---|---|---|---|
| Profile | dev |
production |
mock |
| 后端服务 | backend-dev |
backend-prod |
backend-mock |
| 前端服务 | frontend-dev |
frontend-prod |
frontend-mock |
| 数据库 | ❌ Mock | ✅ PostgreSQL | ❌ Mock |
| 前端端口 | 5173 | 3000 | 3000 |
| 热重载 | ✅ | ❌ | ❌ |
| 启动时间 | ~15秒 | ~30秒 | ~5秒 |
💡 使用场景示例
场景 1: 日常开发
# 1. 启动开发环境
make docker-dev
# 2. 修改代码(自动热重载)
# 3. 查看日志
make docker-logs
# 4. 停止
make docker-down
场景 2: 测试后端 API
# 1. 启动后端 Mock
make docker-test-backend-bg
# 2. 测试 API
curl http://localhost:8080/health
curl http://localhost:8080/api/v1/registries
# 3. 停止
docker compose --profile mock down
场景 3: 生产环境部署
# 1. 配置环境变量
export JWT_SECRET="your-secret"
export ENCRYPTION_KEY="your-32-byte-key"
# 2. 启动生产环境
make docker-prod
# 3. 检查状态
make docker-status
# 4. 启动管理工具
make docker-tools
场景 4: 完全重置
# 1. 停止并删除所有容器和数据
docker compose down -v
# 2. 删除镜像
docker rmi $(docker images | grep ocdp | awk '{print $3}')
# 3. 重新构建
make docker-build
# 4. 重新启动
make docker-dev
🎓 环境变量
开发模式环境变量
后端自动使用:
ADAPTER_MODE=mockJWT_SECRET=dev-secret-key
生产模式环境变量
可通过 .env 文件或导出环境变量设置:
export JWT_SECRET="your-production-secret"
export ENCRYPTION_KEY="your-production-encryption-key-32-bytes"
📚 相关文档
- README.md - 项目概述
- DOCKER_SERVICES.md - 详细架构说明
- COMMANDS_CHEATSHEET.md - 命令速查表
- QUICK_START.md - 快速开始指南
✨ 优势
通过整合到单个 docker-compose.yml 文件:
- ✅ 更简洁:只需维护一个配置文件
- ✅ 更清晰:所有服务定义在同一处
- ✅ 更灵活:通过 profiles 轻松切换模式
- ✅ 更易维护:减少配置重复
- ✅ 向后兼容:Make 命令保持不变
简化配置,提升效率!🚀