StarrySkyWorld commited on
Commit
d54e4a2
·
verified ·
1 Parent(s): a16b0d7

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +73 -67
Dockerfile CHANGED
@@ -20,20 +20,22 @@ RUN apt-get update && apt-get install -y \
20
  ENV PYTHONUNBUFFERED=1
21
  ENV FILE_LINK=""
22
 
23
- # 创建默认依赖文件
24
- RUN echo "fastapi==0.104.1" > /app/deps.txt && \
25
- echo "uvicorn[standard]==0.24.0" >> /app/deps.txt && \
26
- echo "pydantic==2.5.0" >> /app/deps.txt && \
27
- echo "ultralytics==8.0.200" >> /app/deps.txt && \
28
- echo "transformers==4.35.0" >> /app/deps.txt && \
29
- echo "torch==2.1.0" >> /app/deps.txt && \
30
- echo "torchvision==0.16.0" >> /app/deps.txt && \
31
- echo "opencv-python==4.8.1.78" >> /app/deps.txt && \
32
- echo "pillow==10.1.0" >> /app/deps.txt && \
33
- echo "numpy==1.24.3" >> /app/deps.txt && \
34
- echo "camoufox==0.4.0" >> /app/deps.txt && \
35
- echo "playwright==1.40.0" >> /app/deps.txt && \
36
- echo "requests==2.31.0" >> /app/deps.txt
 
 
37
 
38
  # 安装 Python 依赖
39
  RUN pip install --no-cache-dir -r deps.txt
@@ -43,59 +45,63 @@ RUN playwright install chromium && \
43
  playwright install-deps chromium
44
 
45
  # 创建 entrypoint 脚本
46
- RUN printf '#!/bin/bash\n\
47
- set -e\n\
48
- \n\
49
- echo "==========================================="\n\
50
- echo "🚀 DOWN"\n\
51
- echo "==========================================="\n\
52
- \n\
53
- # 检查是否设置了 FILE_LINK\n\
54
- if [ -z "$FILE_LINK" ]; then\n\
55
- echo "❌ 错误: 未设置 FILE_LINK 环境变量"\n\
56
- echo "请使用: docker run -e FILE_LINK=https://example.com/code.py ..."\n\
57
- exit 1\n\
58
- fi\n\
59
- \n\
60
- echo "📥 正在从 FILELINK 下载代码..."\n\
61
- \n\
62
- # 下载代码文件\n\
63
- if wget -q --show-progress "$FILE_LINK" -O /app/recaptcha_api_server.py; then\n\
64
- echo "✅ 代码下载成功"\n\
65
- else\n\
66
- echo "❌ 代码下载失败,尝试使用 curl..."\n\
67
- if curl -fSL "$FILE_LINK" -o /app/recaptcha_api_server.py; then\n\
68
- echo " 代码下载成功 (使用 curl)"\n\
69
- else\n\
70
- echo "❌ 下载失败,请检查 FILE_LINK 是否正确"\n\
71
- exit 1\n\
72
- fi\n\
73
- fi\n\
74
- \n\
75
- # 验证文件是否为 Python 脚本\n\
76
- if ! head -n 1 /app/recaptcha_api_server.py | grep -q "python"; then\n\
77
- echo "⚠️ 警告: 下载的文件可能不是 Python 脚本"\n\
78
- fi\n\
79
- \n\
80
- echo "📊 文件信息:"\n\
81
- ls -lh /app/recaptcha_api_server.py\n\
82
- echo ""\n\
83
- \n\
84
- echo "🔧 安装依赖..."\n\
85
- pip install --no-cache-dir -r /app/deps.txt\n\
86
- \n\
87
- echo ""\n\
88
- echo "==========================================="\n\
89
- echo "🎯 启动服务器..."\n\
90
- echo "==========================================="\n\
91
- echo "📡 监听地址: 0.0.0.0:8000"\n\
92
- echo "📝 API 文档: http://localhost:8000/docs"\n\
93
- echo "==========================================="\n\
94
- echo ""\n\
95
- \n\
96
- # 运行服务器\n\
97
- exec python /app/recaptcha_api_server.py\n\
98
- ' > /entrypoint.sh && chmod +x /entrypoint.sh
 
 
 
 
99
 
100
  # 暴露端口
101
  EXPOSE 8000
 
20
  ENV PYTHONUNBUFFERED=1
21
  ENV FILE_LINK=""
22
 
23
+ # 创建依赖文件(直接写入)
24
+ RUN cat > /app/deps.txt << 'EOF'
25
+ fastapi==0.104.1
26
+ uvicorn[standard]==0.24.0
27
+ pydantic==2.5.0
28
+ ultralytics==8.0.200
29
+ transformers==4.35.0
30
+ torch==2.1.0
31
+ torchvision==0.16.0
32
+ opencv-python==4.8.1.78
33
+ pillow==10.1.0
34
+ numpy==1.24.3
35
+ camoufox==0.4.0
36
+ playwright==1.40.0
37
+ requests==2.31.0
38
+ EOF
39
 
40
  # 安装 Python 依赖
41
  RUN pip install --no-cache-dir -r deps.txt
 
45
  playwright install-deps chromium
46
 
47
  # 创建 entrypoint 脚本
48
+ RUN cat > /entrypoint.sh << 'EOF'
49
+ #!/bin/bash
50
+ set -e
51
+
52
+ echo "==========================================="
53
+ echo "🚀 ReCAPTCHA Solver API Server"
54
+ echo "==========================================="
55
+
56
+ # 检查是否设置了 FILE_LINK
57
+ if [ -z "$FILE_LINK" ]; then
58
+ echo "❌ 错误: 未设置 FILE_LINK 环境变量"
59
+ echo "请使用: docker run -e FILE_LINK=https://example.com/code.py ..."
60
+ exit 1
61
+ fi
62
+
63
+ echo "📥 正在从 $FILE_LINK 下载代码..."
64
+
65
+ # 下载代码文件
66
+ if wget -q --show-progress "$FILE_LINK" -O /app/recaptcha_api_server.py; then
67
+ echo "✅ 代码下载成功"
68
+ else
69
+ echo " 代码下载失败,尝试使用 curl..."
70
+ if curl -fSL "$FILE_LINK" -o /app/recaptcha_api_server.py; then
71
+ echo "✅ 代码下载成功 (使用 curl)"
72
+ else
73
+ echo "❌ 下载失败,请检查 FILE_LINK 是否正确"
74
+ exit 1
75
+ fi
76
+ fi
77
+
78
+ # 验证文件大小
79
+ FILE_SIZE=$(stat -c%s /app/recaptcha_api_server.py)
80
+ if [ "$FILE_SIZE" -lt 1000 ]; then
81
+ echo "⚠️ 警告: 下载的文件太小 ($FILE_SIZE bytes),可能不是有效的代码文件"
82
+ fi
83
+
84
+ echo "📊 文件信息:"
85
+ ls -lh /app/recaptcha_api_server.py
86
+ echo ""
87
+
88
+ echo "🔧 检查并安装额外依赖..."
89
+ pip install --no-cache-dir -r /app/deps.txt > /dev/null 2>&1
90
+
91
+ echo ""
92
+ echo "==========================================="
93
+ echo "🎯 启动服务器..."
94
+ echo "==========================================="
95
+ echo "📡 监听地址: 0.0.0.0:8000"
96
+ echo "📝 API 文档: http://localhost:8000/docs"
97
+ echo "==========================================="
98
+ echo ""
99
+
100
+ # 运行服务器
101
+ exec python /app/recaptcha_api_server.py
102
+ EOF
103
+
104
+ RUN chmod +x /entrypoint.sh
105
 
106
  # 暴露端口
107
  EXPOSE 8000