# 第一阶段:构建阶段 FROM python:3.10-slim AS builder # 设置工作目录 WORKDIR /app # 复制依赖文件 COPY requirements.txt . # 安装构建依赖 RUN apt-get update && apt-get install -y \ build-essential \ libssl-dev \ libffi-dev \ python3-dev \ && apt-get clean \ && pip install --no-cache-dir --upgrade pip \ && pip install --no-cache-dir -r requirements.txt # 第二阶段:运行阶段 FROM python:3.10-slim # 设置工作目录 WORKDIR /tmp # 从构建阶段复制必要的文件 COPY --from=builder /usr/local/lib/python3.10/site-packages /usr/local/lib/python3.10/site-packages COPY --from=builder /usr/local/bin /usr/local/bin COPY . . # 设置环境变量 ENV PYTHONUNBUFFERED=1 ENV MPLCONFIGDIR=/tmp/matplotlib # 确保Matplotlib配置目录可写 RUN mkdir -p /tmp/matplotlib && chmod -R 777 /tmp/matplotlib # 暴露 Flask 端口 EXPOSE 5000 # 运行 Flask 应用 CMD ["gunicorn", "-b", "0.0.0.0:7860", "app:app"]