# 后端 Docker 部署指南 ## 快速开始 ### 1. 准备配置文件 ```bash cd backend copy config.docker.yaml config.yaml ``` 编辑 `config.yaml`,修改以下关键配置: ```yaml jwt: secret_key: "你的安全密钥" # 必须修改! oauth: enabled: true/false # 根据需要启用 # ... 其他 OAuth 配置 ``` ### 2. 启动服务 **Windows:** ```cmd cd backend\scripts docker-build.bat docker-start.bat ``` **Linux/Mac:** ```bash cd backend chmod +x scripts/*.sh ./scripts/docker-build.sh ./scripts/docker-start.sh ``` **或直接使用 docker-compose:** ```bash cd backend docker-compose up -d ``` ### 3. 验证服务 ```bash # 健康检查 curl http://localhost:8000/health # API 文档 浏览器访问: http://localhost:8000/docs ``` ## 常用命令 | 操作 | 命令 | |------|------| | 构建镜像 | `docker build -t lq-label-backend:latest .` | | 启动服务 | `docker-compose up -d` | | 停止服务 | `docker-compose down` | | 查看日志 | `docker-compose logs -f` | | 重启服务 | `docker-compose restart` | | 进入容器 | `docker exec -it lq-label-backend bash` | ## 数据持久化 数据库文件存储在 `backend/data/` 目录,通过 Docker volume 挂载: ``` backend/ ├── data/ │ └── annotation_platform.db # SQLite 数据库 └── config.yaml # 配置文件 ``` ## 生产环境配置 ### 1. 生成安全密钥 ```python python -c "import secrets; print(secrets.token_urlsafe(32))" ``` ### 2. 修改 config.yaml ```yaml jwt: secret_key: "生成的安全密钥" server: reload: false # 关闭热重载 ``` ### 3. 配置反向代理(可选) 使用 Nginx 作为反向代理: ```nginx server { listen 80; server_name your-domain.com; location / { proxy_pass http://localhost:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` ## 故障排查 ### 容器无法启动 ```bash # 查看详细日志 docker-compose logs # 检查配置文件 docker exec lq-label-backend cat /app/config.yaml ``` ### 数据库连接问题 ```bash # 检查数据目录权限 ls -la backend/data/ # 进入容器检查 docker exec -it lq-label-backend ls -la /app/data/ ``` ### 端口冲突 修改 `docker-compose.yml` 中的端口映射: ```yaml ports: - "8001:8000" # 改为其他端口 ```