Refactor Phase 2: Split stories.py into Schema/Service/Controller, add missing endpoints, fix async bug

This commit is contained in:
zhangtuo
2026-02-10 17:14:54 +08:00
parent c351d16d3e
commit 9cdff18336
13 changed files with 881 additions and 612 deletions

View File

@@ -2,26 +2,32 @@ FROM python:3.11-slim
WORKDIR /app
# 安装系统依赖 (如果需要)
# RUN apt-get update && apt-get install -y gcc libpq-dev && rm -rf /var/lib/apt/lists/*
# 设置环境变量
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1
# 复制项目文件
# 安装系统工具 (curl用于可能的健康检查)
RUN apt-get update && apt-get install -y --no-install-recommends curl && rm -rf /var/lib/apt/lists/*
# 1. 缓存层:仅复制依赖定义并安装
# 创建伪造的 app 目录以满足 pip install . 的要求
COPY pyproject.toml .
# 复制源码
RUN mkdir app && touch app/__init__.py
RUN pip install --no-cache-dir .
# 2. 源码层:复制真实代码
COPY app ./app
COPY alembic ./alembic
COPY alembic.ini .
# 安装依赖
# 使用 pip 安装当前目录 (.),会自动解析 pyproject.toml
RUN pip install --no-cache-dir .
# 再次安装本身(不带依赖),确保源码更新被标记为已安装
RUN pip install --no-cache-dir --no-deps .
# 创建静态文件目录 (用于存放生成的图片)
# 创建静态文件目录
RUN mkdir -p static/images
# 暴露端口
EXPOSE 8000
# 启动命令
# 生产环境建议使用 gunicorn 或 uvicorn --workers
# 默认启动命令(可被 docker-compose 覆盖)
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]