maltose1 commited on
Commit
5f1af31
·
verified ·
1 Parent(s): 1d8d528

Upload 9 files

Browse files
Files changed (1) hide show
  1. Dockerfile +38 -34
Dockerfile CHANGED
@@ -1,35 +1,39 @@
1
- # 使用 Microsoft 官方的 Playwright 镜像作为基础
2
- # 这个镜像经包含了所有运行无头浏览器所需系统依赖和浏览器
3
- # 根据 Playwright 的错误日志,我们需要使用 v1.52.5 版本的镜像来匹配依赖库
4
- FROM mcr.microsoft.com/playwright/python:v1.52.5-jammy
5
-
6
- # 在容器中设置工作目录
7
- WORKDIR /app
8
-
9
- # 基础镜像已经包含了 git, python, 和浏览器, 无需再手动安装
10
-
11
- # 克隆 Turnstile-Solver 仓库
12
- RUN git clone https://github.com/Theyka/Turnstile-Solver.git /app/Turnstile-Solver
13
-
14
- # Turnstile-Solver 安装依赖
15
- RUN pip install --no-cache-dir -r /app/Turnstile-Solver/requirements.txt
16
-
17
- # 预下载 browserforge 所需的数据文件,防止运行时出现权限问题
18
- # 即使基础镜像很完备这一步仍然是好的实践
19
- RUN python -c "from browserforge.fingerprints import FingerprintGenerator; from browserforge.headers import HeaderGenerator; print('Pre-downloaded browserforge data files.')"
20
-
21
- # 将应用程序其余代码复制到容器中
22
- COPY . .
23
-
24
- # 安装主应用程序的依赖
25
- RUN pip install --no-cache-dir -r requirements.txt
26
-
27
- # 使启动脚本可执行
28
- RUN chmod +x ./start.sh
29
-
30
- # 暴露应用程序将运行的端口
31
- # Hugging Face Spaces 将使用此端口将流量路由到应用程序
32
- EXPOSE 7860
33
-
34
- # 指定在容器启动时要运行的命令
 
 
 
 
35
  CMD ["/app/start.sh"]
 
1
+ # 使用 Microsoft 官方的 Playwright 镜像作为基础
2
+ # 我们将版本固定在 v1.44.0,是一个已稳定版,并且我们将手动固定 python 库的版本来匹配它
3
+ FROM mcr.microsoft.com/playwright/python:v1.44.0-jammy
4
+
5
+ # 在容器中设置工作目录
6
+ WORKDIR /app
7
+
8
+ # 基础镜像已经包含了 git, python, 和浏览器, 无需再手动安装
9
+
10
+ # 克隆 Turnstile-Solver 仓库
11
+ RUN git clone https://github.com/Theyka/Turnstile-Solver.git /app/Turnstile-Solver
12
+
13
+ # 核心修复:在安装其他依赖之前,先将 playwright 的版本固定到与基础镜像匹配的版本
14
+ # 这可以防止 pip 安装一个不兼容的新版本
15
+ RUN pip install --no-cache-dir playwright==1.44.0
16
+
17
+ # Turnstile-Solver 安装依赖
18
+ # pip 会检测到 playwright==1.44.0 已经安装从而跳过它
19
+ RUN pip install --no-cache-dir -r /app/Turnstile-Solver/requirements.txt
20
+
21
+ # 预下载 browserforge 所需数据文件,防止运行时出现权限问题
22
+ # 即使基础镜像很完备,这一步仍然是好的实践
23
+ RUN python -c "from browserforge.fingerprints import FingerprintGenerator; from browserforge.headers import HeaderGenerator; print('Pre-downloaded browserforge data files.')"
24
+
25
+ # 将应用程序的其余代码复制到容器中
26
+ COPY . .
27
+
28
+ # 安装主应用程序的依赖
29
+ RUN pip install --no-cache-dir -r requirements.txt
30
+
31
+ # 使启动脚本可执行
32
+ RUN chmod +x ./start.sh
33
+
34
+ # 暴露应用程序将运行的端口
35
+ # Hugging Face Spaces 将使用此端口将流量路由到应用程序
36
+ EXPOSE 7860
37
+
38
+ # 指定在容器启动时要运行的命令
39
  CMD ["/app/start.sh"]