# 沃林学生管理系统 —— 生产/演示用镜像
FROM python:3.11-slim

ENV PYTHONUNBUFFERED=1 \
    PYTHONDONTWRITEBYTECODE=1 \
    PIP_NO_CACHE_DIR=1 \
    TZ=Asia/Shanghai

WORKDIR /app

# 时区 + 编译 pymysql/cryptography 所需的构建工具
RUN sed -i 's/deb.debian.org/mirrors.tencent.com/g; s/security.debian.org/mirrors.tencent.com/g' \
        /etc/apt/sources.list.d/debian.sources 2>/dev/null || true \
    && apt-get update \
    && apt-get install -y --no-install-recommends tzdata curl \
    && ln -snf /usr/share/zoneinfo/$TZ /etc/localtime \
    && echo $TZ > /etc/timezone \
    && rm -rf /var/lib/apt/lists/*

# 先装依赖，充分利用镜像层缓存
COPY requirements.txt .
RUN pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple \
    && pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

# 再拷代码
COPY . .

RUN chmod +x /app/docker/entrypoint.sh

EXPOSE 8000

# 用 shell 形式，避免 Windows 换行导致 exec 失败
ENTRYPOINT ["sh", "/app/docker/entrypoint.sh"]
