DOCKER_DEPLOY.md 2.2 KB

Docker 部署指南

快速开始

1. 启动服务

# 构建并启动所有服务
docker-compose up -d

# 查看日志
docker-compose logs -f chat-ai-api

2. 验证服务

生产环境调整

CORS 配置

编辑 main.py 中的 CORS 设置,指定具体的允许域名:

app.add_middleware(
    CORSMiddleware,
    allow_origins=["https://yourdomain.com", "https://www.yourdomain.com"],
    allow_credentials=True,
    allow_methods=["GET", "POST", "PUT", "DELETE"],
    allow_headers=["*"],
)

日志级别

生产环境建议使用 warningerror

LOG_LEVEL=warning docker-compose up -d

数据库持久化

数据已通过 Docker volumes 持久化:

  • MongoDB: mongodb_data
  • Redis: redis_data

扩展副本

如需多个 API 实例,编辑 docker-compose.yml

services:
  chat-ai-api-1:
    # ... 配置
    ports:
      - "8001:8000"

  chat-ai-api-2:
    # ... 配置
    ports:
      - "8002:8000"

然后使用 Nginx 进行负载均衡。

常用命令

# 启动服务
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

故障排查

容器启动失败

# 查看详细日志
docker-compose logs chat-ai-api

# 检查环境变量
docker-compose config

数据库连接失败

确保 MongoDB 和 Redis 已启动:

docker-compose ps

端口被占用

修改 docker-compose.yml 中的端口映射:

ports:
  - "8001:8000"  # 改为其他端口

安全建议

  1. 修改默认密码:MongoDB 和 Redis 的默认密码需要修改
  2. 环境变量保护.env 文件不要提交到版本控制
  3. CORS 限制:生产环境指定具体的允许域名
  4. SECRET_KEY:使用强随机密钥(至少32字符)
  5. 日志级别:生产环境降低日志级别以减少日志输出