# 使用 Microsoft 官方的 Playwright 镜像作为基础 # 这个镜像已经包含了所有运行无头浏览器所需的系统依赖和浏览器本身 # 根据 Playwright 的错误日志和可用的镜像标签,我们使用 v1.52.0 FROM mcr.microsoft.com/playwright/python:v1.52.0-noble # 在容器中设置工作目录 WORKDIR /app # 基础镜像已经包含了 git, python, 和浏览器, 无需再手动安装 # 克隆 Turnstile-Solver 仓库 RUN git clone https://github.com/Theyka/Turnstile-Solver.git /app/Turnstile-Solver # 为 Turnstile-Solver 安装依赖 RUN pip install --no-cache-dir -r /app/Turnstile-Solver/requirements.txt # 预下载 browserforge 所需的数据文件,防止运行时出现权限问题 # 即使基础镜像很完备,这一步仍然是好的实践 RUN python -c "from browserforge.fingerprints import FingerprintGenerator; from browserforge.headers import HeaderGenerator; print('Pre-downloaded browserforge data files.')" # 将应用程序的其余代码复制到容器中 COPY . . # 安装主应用程序的依赖 RUN pip install --no-cache-dir -r requirements.txt # 使启动脚本可执行 RUN chmod +x ./start.sh # 暴露应用程序将运行的端口 # Hugging Face Spaces 将使用此端口将流量路由到应用程序 EXPOSE 7860 # 指定在容器启动时要运行的命令 CMD ["/app/start.sh"]