Spaces:
Paused
Paused
| # 1. 基础镜像:使用一个现代、轻量的 Python 环境 | |
| FROM python:3.11-slim | |
| ENV PYTHONUNBUFFERED=1 | |
| # 2. 设置工作目录 | |
| WORKDIR /app | |
| # 3. 安装系统依赖:xvfb 用于虚拟显示,这对于在服务器上运行浏览器至关重要 | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| xvfb \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # 4. 复制整个项目代码到容器中 | |
| COPY . . | |
| # 5. 安装所有 Python 依赖 | |
| # - 使用引号确保 camoufox[geoip] 被正确解析 | |
| # - --no-cache-dir 减小镜像体积 | |
| RUN pip install --no-cache-dir -U "camoufox[geoip]" | |
| RUN pip install --no-cache-dir -r requirements.txt | |
| # 6. 安装 Playwright 运行所需的系统级依赖 | |
| # 这个命令会由 Playwright 自动安装所有必需的库 | |
| RUN playwright install-deps firefox | |
| # 7. 下载 Camoufox 修改版的 Firefox 浏览器 | |
| RUN camoufox fetch | |
| # 8. 暴露应用程序端口(根据项目文档,默认为 2048) | |
| EXPOSE 2048 | |
| # 9. 定义容器启动时执行的命令 | |
| # --host 0.0.0.0 是在 Docker 中运行网络服务所必需的 | |
| # --virtual-display 使用我们安装的 xvfb | |
| # --headless 在没有图形界面的服务器上运行 | |
| CMD ["python", "launch_camoufox.py", "--headless", "--server-port", "2048"] | |