Spaces:
Sleeping
Sleeping
| # 构建阶段 | |
| FROM python:3.10-slim-bullseye AS builder | |
| # 安装必要的系统依赖 | |
| RUN apt-get update && apt-get install -y \ | |
| build-essential \ | |
| gcc \ | |
| binutils \ | |
| && rm -rf /var/lib/apt/lists/* | |
| WORKDIR /app | |
| # 复制项目文件 | |
| COPY . . | |
| # 安装 Python 依赖 | |
| RUN pip install --no-cache-dir \ | |
| pyinstaller \ | |
| flask \ | |
| python-dotenv \ | |
| DrissionPage \ | |
| requests | |
| # 编译二进制文件 | |
| RUN pyinstaller --onefile \ | |
| --name app_binary \ | |
| app.py | |
| # 运行阶段 | |
| FROM python:3.10-slim-bullseye | |
| # 安装运行时可能需要的最小依赖以及 Chromium 浏览器 | |
| # DrissionPage 需要浏览器才能工作 | |
| RUN apt-get update && apt-get install -y \ | |
| chromium \ | |
| chromium-driver \ | |
| libpython3.9 \ | |
| && rm -rf /var/lib/apt/lists/* | |
| WORKDIR /app | |
| # 仅复制编译后的二进制文件 | |
| COPY --from=builder /app/dist/app_binary . | |
| # 复制模板文件 | |
| COPY templates ./templates | |
| # 设置运行权限 | |
| RUN chmod +x app_binary | |
| # 暴露端口 | |
| ENV PORT=7860 | |
| EXPOSE 7860 | |
| # 运行二进制文件 | |
| CMD ["./app_binary"] | |