# 沃林学生管理系统 —— 生产/演示用镜像 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"]