# ============================================ # 沃林学生管理系统 (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"]