主要改动: - 更新依赖:使用 fastapi、uvicorn 替代 Flask - 数据库层:从 Flask-SQLAlchemy 迁移到纯 SQLAlchemy - 新增 database.py 管理数据库连接和会话 - 路由层:从 Blueprint 迁移到 APIRouter,添加 Pydantic 模型验证 - 应用层:使用 FastAPI 中间件替代 Flask 插件 - 启动方式:使用 uvicorn 替代 Flask 开发服务器 - 更新 Docker 配置以支持 FastAPI 优势: - 更高的性能和异步支持 - 自动生成 OpenAPI 文档 - 更好的类型安全和数据验证 - 所有 API 端点保持向后兼容 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
42 lines
950 B
Docker
42 lines
950 B
Docker
# 使用官方Python运行时作为基础镜像
|
|
FROM python:3.11-slim
|
|
|
|
# 设置工作目录
|
|
WORKDIR /app
|
|
|
|
# 设置环境变量
|
|
ENV PYTHONDONTWRITEBYTECODE=1 \
|
|
PYTHONUNBUFFERED=1
|
|
|
|
# 安装系统依赖
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
gcc \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# 复制依赖文件
|
|
COPY backend/requirements.txt /app/backend/requirements.txt
|
|
|
|
# 安装Python依赖
|
|
RUN pip install --no-cache-dir --upgrade pip && \
|
|
pip install --no-cache-dir -r /app/backend/requirements.txt
|
|
|
|
# 复制项目文件
|
|
COPY backend/ /app/backend/
|
|
COPY frontend/ /app/frontend/
|
|
COPY docker-entrypoint.sh /app/docker-entrypoint.sh
|
|
|
|
# 创建数据目录
|
|
RUN mkdir -p /app/data
|
|
|
|
# 设置启动脚本权限
|
|
RUN chmod +x /app/docker-entrypoint.sh
|
|
|
|
# 暴露端口
|
|
EXPOSE 5000
|
|
|
|
# 设置工作目录为backend
|
|
WORKDIR /app/backend
|
|
|
|
# 启动应用
|
|
CMD ["/app/docker-entrypoint.sh"]
|