# 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"]