356 lines
6.2 KiB
Markdown
356 lines
6.2 KiB
Markdown
# OCDP 使用指南
|
||
|
||
## 🎯 统一的 docker-compose.yml
|
||
|
||
现在所有配置都整合在一个文件中,使用 **profiles** 区分不同运行模式。
|
||
|
||
---
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 方式 1: 使用 Make(推荐)
|
||
|
||
```bash
|
||
# 开发模式
|
||
make docker-dev
|
||
|
||
# 生产模式
|
||
make docker-prod
|
||
|
||
# 测试后端
|
||
make docker-test-backend
|
||
|
||
# 测试前端
|
||
make docker-test-frontend
|
||
```
|
||
|
||
### 方式 2: 使用 Docker Compose
|
||
|
||
```bash
|
||
# 开发模式
|
||
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)
|
||
- ✅ 快速启动
|
||
|
||
**启动命令**:
|
||
```bash
|
||
# 前台运行
|
||
docker compose --profile dev up
|
||
|
||
# 后台运行
|
||
docker compose --profile dev up -d
|
||
|
||
# 或使用 Make
|
||
make docker-dev
|
||
make docker-dev-bg
|
||
```
|
||
|
||
**访问地址**:
|
||
- 前端:http://localhost:5173
|
||
- 后端:http://localhost:8080
|
||
|
||
**服务列表**:
|
||
- `backend-dev` - 后端开发服务
|
||
- `frontend-dev` - 前端开发服务
|
||
|
||
### 2. 生产模式(Production Profile)
|
||
|
||
**特点**:
|
||
- ✅ 真实数据库(PostgreSQL + Redis)
|
||
- ✅ 完整功能
|
||
- ✅ 生产环境配置
|
||
|
||
**启动命令**:
|
||
```bash
|
||
# 后台运行
|
||
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)
|
||
|
||
**特点**:
|
||
- ✅ 独立测试单个服务
|
||
- ✅ 无外部依赖
|
||
- ✅ 快速启动
|
||
|
||
**测试后端**:
|
||
```bash
|
||
# 前台运行
|
||
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
|
||
```
|
||
|
||
**测试前端**:
|
||
```bash
|
||
# 前台运行
|
||
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
|
||
```
|
||
|
||
---
|
||
|
||
## 🛠️ 常用操作
|
||
|
||
### 查看日志
|
||
|
||
```bash
|
||
# 查看所有日志
|
||
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
|
||
```
|
||
|
||
### 停止服务
|
||
|
||
```bash
|
||
# 停止所有服务
|
||
docker compose down
|
||
|
||
# 停止特定 profile 的服务
|
||
docker compose --profile dev down
|
||
docker compose --profile production down
|
||
docker compose --profile mock down
|
||
|
||
# 或使用 Make
|
||
make docker-down
|
||
```
|
||
|
||
### 重启服务
|
||
|
||
```bash
|
||
# 重启所有运行的服务
|
||
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
|
||
```
|
||
|
||
### 构建镜像
|
||
|
||
```bash
|
||
# 构建所有镜像
|
||
docker compose build
|
||
|
||
# 无缓存构建
|
||
docker compose build --no-cache
|
||
|
||
# 或使用 Make
|
||
make docker-build
|
||
make docker-build-no-cache
|
||
```
|
||
|
||
### 查看状态
|
||
|
||
```bash
|
||
# 查看运行的服务
|
||
docker compose ps
|
||
|
||
# 查看详细状态
|
||
make docker-status
|
||
```
|
||
|
||
---
|
||
|
||
## 🔧 开发工具
|
||
|
||
### 启动 pgAdmin 和 Swagger UI
|
||
|
||
```bash
|
||
# 需要先启动生产模式
|
||
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: 日常开发
|
||
|
||
```bash
|
||
# 1. 启动开发环境
|
||
make docker-dev
|
||
|
||
# 2. 修改代码(自动热重载)
|
||
|
||
# 3. 查看日志
|
||
make docker-logs
|
||
|
||
# 4. 停止
|
||
make docker-down
|
||
```
|
||
|
||
### 场景 2: 测试后端 API
|
||
|
||
```bash
|
||
# 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: 生产环境部署
|
||
|
||
```bash
|
||
# 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: 完全重置
|
||
|
||
```bash
|
||
# 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=mock`
|
||
- `JWT_SECRET=dev-secret-key`
|
||
|
||
### 生产模式环境变量
|
||
|
||
可通过 `.env` 文件或导出环境变量设置:
|
||
```bash
|
||
export JWT_SECRET="your-production-secret"
|
||
export ENCRYPTION_KEY="your-production-encryption-key-32-bytes"
|
||
```
|
||
|
||
---
|
||
|
||
## 📚 相关文档
|
||
|
||
- [README.md](./README.md) - 项目概述
|
||
- [DOCKER_SERVICES.md](./DOCKER_SERVICES.md) - 详细架构说明
|
||
- [COMMANDS_CHEATSHEET.md](./COMMANDS_CHEATSHEET.md) - 命令速查表
|
||
- [QUICK_START.md](./QUICK_START.md) - 快速开始指南
|
||
|
||
---
|
||
|
||
## ✨ 优势
|
||
|
||
通过整合到单个 `docker-compose.yml` 文件:
|
||
|
||
- ✅ **更简洁**:只需维护一个配置文件
|
||
- ✅ **更清晰**:所有服务定义在同一处
|
||
- ✅ **更灵活**:通过 profiles 轻松切换模式
|
||
- ✅ **更易维护**:减少配置重复
|
||
- ✅ **向后兼容**:Make 命令保持不变
|
||
|
||
---
|
||
|
||
<div align="center">
|
||
<sub>简化配置,提升效率!🚀</sub>
|
||
</div>
|
||
|