单容器重构

This commit is contained in:
2025-12-12 22:36:25 +08:00
parent 31de3a94a6
commit 62cb6d18b0
14 changed files with 767 additions and 261 deletions

62
docker-compose-single.yml Normal file
View File

@@ -0,0 +1,62 @@
# ==================== 单容器部署配置 ====================
# 使用方法docker-compose -f docker-compose-single.yml up -d
version: '3.8'
services:
qquiz:
build:
context: .
dockerfile: Dockerfile
container_name: qquiz
ports:
- "8000:8000"
environment:
# 数据库配置SQLite 默认)
- DATABASE_URL=sqlite+aiosqlite:////app/data/qquiz.db
# JWT 密钥(生产环境请修改)
- SECRET_KEY=your-super-secret-key-change-in-production-minimum-32-characters
# AI 提供商配置
- AI_PROVIDER=gemini
- GEMINI_API_KEY=${GEMINI_API_KEY}
- GEMINI_BASE_URL=${GEMINI_BASE_URL:-https://generativelanguage.googleapis.com}
- GEMINI_MODEL=${GEMINI_MODEL:-gemini-2.0-flash-exp}
# OpenAI 配置(可选)
- OPENAI_API_KEY=${OPENAI_API_KEY:-}
- OPENAI_BASE_URL=${OPENAI_BASE_URL:-https://api.openai.com/v1}
- OPENAI_MODEL=${OPENAI_MODEL:-gpt-4o-mini}
# Anthropic 配置(可选)
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}
- ANTHROPIC_MODEL=${ANTHROPIC_MODEL:-claude-3-haiku-20240307}
# Qwen 配置(可选)
- QWEN_API_KEY=${QWEN_API_KEY:-}
- QWEN_BASE_URL=${QWEN_BASE_URL:-https://dashscope.aliyuncs.com/compatible-mode/v1}
- QWEN_MODEL=${QWEN_MODEL:-qwen-plus}
# 系统配置
- ALLOW_REGISTRATION=true
- MAX_UPLOAD_SIZE_MB=10
- MAX_DAILY_UPLOADS=20
volumes:
# 持久化数据卷
- qquiz_data:/app/data # 数据库文件
- qquiz_uploads:/app/uploads # 上传文件
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
volumes:
qquiz_data:
qquiz_uploads: