# ============================================
#  沃林学生管理系统 (Docker)
#  FastAPI + SQLAlchemy + PyMySQL -> MySQL 8
# ============================================
FROM python:3.11-slim

# 运行环境：不生成 .pyc、日志实时输出、pip 不缓存
ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    PIP_NO_CACHE_DIR=1

WORKDIR /app

# 1) 先装依赖（利用层缓存，改代码不必重装）
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt \
    -i https://pypi.tuna.tsinghua.edu.cn/simple

# 2) 拷贝应用代码
COPY . .

# 3) static 为空目录时 COPY 不会生成，手动补上(main.py 挂载时需要)
RUN mkdir -p static

EXPOSE 8001

# 4) 启动流程：建表 -> 灌种子数据(seed_data 有幂等检查,可重复执行) -> 启动服务
CMD ["sh", "-c", "python -c 'from database import init_db; init_db()' && python seed_data.py && exec python main.py"]
