# 轻量 Python 基础镜像 FROM python:3.10-slim ENV PIP_DISABLE_PIP_VERSION_CHECK=1 \ PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ PLAYWRIGHT_BROWSERS_PATH=/usr/lib/playwright \ DEBIAN_FRONTEND=noninteractive # Playwright/Chromium 依赖 RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates curl wget gnupg \ fonts-liberation \ libasound2 libatk1.0-0 libc6 libdbus-1-3 libexpat1 \ libfontconfig1 libgcc1 libglib2.0-0 libgtk-3-0 libnspr4 libnss3 \ libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 \ libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 \ libxi6 libxrandr2 libxrender1 libxss1 libxtst6 libdrm2 libgbm1 \ libxshmfence1 libu2f-udev libvulkan1 xdg-utils \ && rm -rf /var/lib/apt/lists/* WORKDIR /app # 先装依赖,利用缓存 COPY requirements.txt /app/requirements.txt RUN pip install --no-cache-dir -r requirements.txt # 安装 Chromium(缓存可复用) RUN python -m playwright install chromium # 拷贝应用代码 COPY app.py /app/app.py # 如果你确实需要 postBuild 中的内容,直接删除下一行注释并确保仓库里有 postBuild 文件: # COPY postBuild /app/postBuild EXPOSE 7860 # 读取 HF 注入的 $PORT;无则回退 7860 CMD bash -lc 'uvicorn app:app --host 0.0.0.0 --port ${PORT:-7860} --log-level info'