# Docker 部署指南 ## 快速开始 ### 1. 启动服务 ```bash # 构建并启动所有服务 docker-compose up -d # 查看日志 docker-compose logs -f chat-ai-api ``` ### 2. 验证服务 - API 文档:http://localhost:8000/docs - MongoDB:localhost:27017 - Redis:localhost:6379 ## 生产环境调整 ### CORS 配置 编辑 `main.py` 中的 CORS 设置,指定具体的允许域名: ```python app.add_middleware( CORSMiddleware, allow_origins=["https://yourdomain.com", "https://www.yourdomain.com"], allow_credentials=True, allow_methods=["GET", "POST", "PUT", "DELETE"], allow_headers=["*"], ) ``` ### 日志级别 生产环境建议使用 `warning` 或 `error`: ```bash LOG_LEVEL=warning docker-compose up -d ``` ### 数据库持久化 数据已通过 Docker volumes 持久化: - MongoDB: `mongodb_data` - Redis: `redis_data` ### 扩展副本 如需多个 API 实例,编辑 `docker-compose.yml`: ```yaml services: chat-ai-api-1: # ... 配置 ports: - "8001:8000" chat-ai-api-2: # ... 配置 ports: - "8002:8000" ``` 然后使用 Nginx 进行负载均衡。 ## 常用命令 ```bash # 启动服务 docker-compose up -d # 停止服务 docker-compose down # 查看日志 docker-compose logs -f chat-ai-api # 重启服务 docker-compose restart chat-ai-api # 进入容器 docker-compose exec chat-ai-api bash # 查看服务状态 docker-compose ps # 清理所有数据(谨慎) docker-compose down -v ``` ## 故障排查 ### 容器启动失败 ```bash # 查看详细日志 docker-compose logs chat-ai-api # 检查环境变量 docker-compose config ``` ### 数据库连接失败 确保 MongoDB 和 Redis 已启动: ```bash docker-compose ps ``` ### 端口被占用 修改 `docker-compose.yml` 中的端口映射: ```yaml ports: - "8001:8000" # 改为其他端口 ``` ## 安全建议 1. **修改默认密码**:MongoDB 和 Redis 的默认密码需要修改 2. **环境变量保护**:`.env` 文件不要提交到版本控制 3. **CORS 限制**:生产环境指定具体的允许域名 4. **SECRET_KEY**:使用强随机密钥(至少32字符) 5. **日志级别**:生产环境降低日志级别以减少日志输出