Files
rust-user-api/README-Docker.md
enoch bb9d7a869d
Some checks failed
Deploy to Production / Run Tests (push) Failing after 16m35s
Deploy to Production / Security Scan (push) Has been skipped
Deploy to Production / Build Docker Image (push) Has been skipped
Deploy to Production / Deploy to Staging (push) Has been skipped
Deploy to Production / Deploy to Production (push) Has been skipped
Deploy to Production / Notify Results (push) Successful in 31s
feat: 完成Rust User API完整开发
 新功能:
- SQLite数据库集成和持久化存储
- 数据库迁移系统和版本管理
- API分页功能和高效查询
- 用户搜索和过滤机制
- 完整的RBAC角色权限系统
- 结构化日志记录和系统监控
- API限流和多层安全防护
- Docker容器化和生产部署配置

🔒 安全特性:
- JWT认证和授权
- 限流和防暴力破解
- 安全头和CORS配置
- 输入验证和XSS防护
- 审计日志和安全监控

📊 监控和运维:
- Prometheus指标收集
- 健康检查和系统监控
- 自动化备份和恢复
- 完整的运维文档和脚本
- CI/CD流水线配置

🚀 部署支持:
- 多环境Docker配置
- 生产环境部署指南
- 性能优化和安全加固
- 故障排除和应急响应
- 自动化运维脚本

📚 文档完善:
- API使用文档
- 部署检查清单
- 运维操作手册
- 性能和安全指南
- 故障排除指南
2025-08-07 16:03:32 +08:00

207 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Rust User API - Docker 容器化
## 🐳 Docker 配置概览
本项目提供完整的Docker容器化解决方案支持开发、测试和生产环境部署。
## 📁 Docker 相关文件
```
├── Dockerfile # 多阶段构建配置
├── docker-compose.yml # 完整部署配置(含监控)
├── docker-compose.simple.yml # 简化部署配置
├── .dockerignore # 构建优化配置
└── docs/
└── docker-deployment.md # 详细部署文档
```
## 🚀 快速启动
### 方式一:简单部署(推荐新手)
```bash
# 构建并启动应用
docker-compose -f docker-compose.simple.yml up --build
# 后台运行
docker-compose -f docker-compose.simple.yml up -d --build
```
### 方式二:完整部署(包含监控)
```bash
# 仅启动主应用
docker-compose up rust-user-api --build
# 启动应用 + 监控服务
docker-compose --profile monitoring up --build
```
## 🔧 主要特性
### ✅ 已实现功能
- **多阶段构建**: 优化镜像大小使用Rust 1.88
- **安全运行**: 非root用户最小权限
- **健康检查**: 自动监控应用状态
- **数据持久化**: Docker卷管理数据
- **环境配置**: 灵活的环境变量配置
- **日志管理**: 结构化日志输出
- **监控集成**: 可选的Prometheus + Grafana
### 🛡️ 安全特性
- 使用非root用户运行
- 安全头中间件
- API限流保护
- JWT认证
- 暴力破解检测
- 审计日志记录
## 🌐 服务端口
| 服务 | 端口 | 描述 |
|------|------|------|
| 主应用 | 3000 | REST API服务 |
| Prometheus | 9090 | 监控数据收集 |
| Grafana | 3001 | 监控仪表板 |
## 📊 API 端点
### 核心功能
- `GET /health` - 健康检查
- `GET /api/users` - 用户列表
- `POST /api/users` - 创建用户
- `POST /api/auth/login` - 用户登录
### 监控端点
- `GET /monitoring/dashboard` - 监控仪表板
- `GET /monitoring/metrics/system` - 系统指标
- `GET /monitoring/metrics/app` - 应用指标
## 🔧 环境变量
### 核心配置
```bash
RUST_LOG=info # 日志级别
DATABASE_URL=sqlite:///app/data/users.db?mode=rwc # 数据库连接
SERVER_HOST=0.0.0.0 # 监听地址
SERVER_PORT=3000 # 监听端口
```
### 日志配置
```bash
LOG_LEVEL=info # 日志级别
LOG_FORMAT=pretty # 日志格式
LOG_TO_CONSOLE=true # 控制台输出
LOG_TO_FILE=false # 文件输出
```
## 💾 数据管理
### 数据持久化
- 使用Docker卷存储SQLite数据库
- 数据位置: `/app/data/users.db`
- 自动创建数据目录和权限设置
### 备份和恢复
```bash
# 备份数据
docker run --rm -v rust-server_api_data:/data -v $(pwd):/backup alpine tar czf /backup/backup.tar.gz -C /data .
# 恢复数据
docker run --rm -v rust-server_api_data:/data -v $(pwd):/backup alpine tar xzf /backup/backup.tar.gz -C /data
```
## 🔍 监控和调试
### 查看日志
```bash
# 实时日志
docker-compose logs -f rust-user-api
# 最近日志
docker-compose logs --tail=100 rust-user-api
```
### 性能监控
```bash
# 容器资源使用
docker stats rust-user-api
# 健康检查状态
docker inspect rust-user-api | grep -A 10 Health
```
## 🛠️ 开发和测试
### 本地开发
```bash
# 开发模式(代码变更自动重启)
docker-compose -f docker-compose.simple.yml up --build
# 调试模式
docker-compose -f docker-compose.simple.yml up --build -e RUST_LOG=debug
```
### 测试API
```bash
# 健康检查
curl http://localhost:3000/health
# 获取用户列表
curl http://localhost:3000/api/users
# 用户登录
curl -X POST -H "Content-Type: application/json" \
-d '{"username":"test","password":"password"}' \
http://localhost:3000/api/auth/login
```
## 🚀 生产部署
### 安全建议
1. 使用环境变量管理敏感信息
2. 限制端口暴露范围
3. 配置资源限制
4. 启用SSL/TLS通过反向代理
5. 定期备份数据
### 扩展配置
- 支持多实例部署
- 可配置外部数据库
- 集成负载均衡器
- 支持容器编排Kubernetes
## 📚 详细文档
查看 [`docs/docker-deployment.md`](docs/docker-deployment.md) 获取:
- 详细部署指南
- 故障排除方法
- 性能优化建议
- 安全配置最佳实践
## 🔧 故障排除
### 常见问题
1. **端口冲突**: 修改docker-compose.yml中的端口映射
2. **权限问题**: 检查数据目录权限设置
3. **内存不足**: 增加Docker内存限制
4. **构建失败**: 检查网络连接和依赖下载
### 获取帮助
- 查看应用日志: `docker-compose logs rust-user-api`
- 检查容器状态: `docker-compose ps`
- 进入容器调试: `docker-compose exec rust-user-api /bin/bash`
## 🎯 下一步
Docker容器化配置已完成接下来可以
1. 测试Docker构建和部署
2. 配置生产环境
3. 设置CI/CD流水线
4. 添加更多监控指标
---
**注意**: 本项目使用Rust 1.88和现代化的容器技术栈,确保了高性能、安全性和可维护性。