Spaces:
Sleeping
Sleeping
FROM python:3.11-slim | |
# 安装 Chrome 和必要的依赖 | |
RUN apt-get update && apt-get install -y \ | |
wget \ | |
gnupg \ | |
&& wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \ | |
&& echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list \ | |
&& apt-get update \ | |
&& apt-get install -y \ | |
google-chrome-stable \ | |
fonts-ipafont-gothic \ | |
fonts-wqy-zenhei \ | |
fonts-thai-tlwg \ | |
fonts-kacst \ | |
fonts-freefont-ttf \ | |
libxss1 \ | |
libx11-xcb1 \ | |
libxcomposite1 \ | |
libxcursor1 \ | |
libxdamage1 \ | |
libxi6 \ | |
libxtst6 \ | |
libglib2.0-0 \ | |
libnss3 \ | |
libcups2 \ | |
libxss1 \ | |
libxrandr2 \ | |
libasound2 \ | |
libpangocairo-1.0-0 \ | |
libatk1.0-0 \ | |
libatk-bridge2.0-0 \ | |
libgtk-3-0 \ | |
&& rm -rf /var/lib/apt/lists/* | |
# 设置工作目录 | |
WORKDIR /app | |
# 设置环境变量 | |
ENV PYTHONUNBUFFERED=1 \ | |
PYTHONDONTWRITEBYTECODE=1 \ | |
PLAYWRIGHT_BROWSERS_PATH=/ms-playwright \ | |
CHROME_BIN=/usr/bin/google-chrome \ | |
CHROME_PATH=/usr/lib/google-chrome/ \ | |
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \ | |
PUPPETEER_EXECUTABLE_PATH=/usr/bin/google-chrome | |
# 复制依赖文件 | |
COPY requirements.txt . | |
# 安装 Python 依赖 | |
RUN pip install --no-cache-dir -r requirements.txt | |
# 安装 Playwright 浏览器 | |
RUN playwright install chromium | |
# 复制应用代码 | |
COPY . . | |
# 创建非 root 用户 | |
RUN useradd -m -u 1000 appuser && \ | |
chown -R appuser:appuser /app | |
USER appuser | |
# 暴露端口 | |
EXPOSE 7860 | |
# 启动命令 | |
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"] |