maylinejix commited on
Commit
337d8b9
·
verified ·
1 Parent(s): b5ce167

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +36 -66
Dockerfile CHANGED
@@ -1,88 +1,58 @@
1
- # Base image dengan Python
2
  FROM python:3.11-slim
3
 
4
- # Install dependencies sistem untuk Playwright/Patchright
 
5
  RUN apt-get update && apt-get install -y \
6
  wget \
7
- curl \
8
- git \
9
- libglib2.0-0 \
10
- libnss3 \
11
- libnspr4 \
12
- libdbus-1-3 \
13
- libatk1.0-0 \
14
  libatk-bridge2.0-0 \
 
 
15
  libcups2 \
 
16
  libdrm2 \
17
- libxkbcommon0 \
 
 
 
 
18
  libxcomposite1 \
19
  libxdamage1 \
20
  libxfixes3 \
 
21
  libxrandr2 \
22
- libgbm1 \
23
- libpango-1.0-0 \
24
- libcairo2 \
25
- libasound2 \
26
- libatspi2.0-0 \
27
- libxshmfence1 \
28
- libglu1-mesa \
29
- libx11-6 \
30
- libx11-xcb1 \
31
- libxcb1 \
32
- libxext6 \
33
  && rm -rf /var/lib/apt/lists/*
34
 
35
- # Set working directory
36
- WORKDIR /app
37
-
38
- # Clone repository Turnstile Solver
39
- RUN git clone https://github.com/sexfrance/Turnstile-Solver.git . \
40
- && rm -rf .git
41
 
42
- # Install Python dependencies
43
  RUN pip install --no-cache-dir -r requirements.txt
44
 
45
- # Install Chrome browser
46
- RUN python -m patchright install chrome
 
47
 
48
- # Install playwright system dependencies untuk Chrome
49
- RUN python -m patchright install-deps chrome || true
 
 
 
 
 
 
 
 
50
 
51
- # Set environment variables
52
  ENV PYTHONUNBUFFERED=1
53
- ENV BROWSER_TYPE=chrome
 
54
 
55
- # Expose port untuk Hugging Face
56
  EXPOSE 7860
57
 
58
- # Buat wrapper script sederhana untuk jalankan API server
59
- RUN echo 'import sys\n\
60
- import os\n\
61
- import argparse\n\
62
- from api_solver import create_app\n\
63
- \n\
64
- if __name__ == "__main__":\n\
65
- # Set environment variable untuk browser type\n\
66
- os.environ["BROWSER_TYPE"] = "chrome"\n\
67
- \n\
68
- parser = argparse.ArgumentParser()\n\
69
- parser.add_argument("--host", default="0.0.0.0")\n\
70
- parser.add_argument("--port", type=int, default=7860)\n\
71
- parser.add_argument("--headless", action="store_true", default=True)\n\
72
- parser.add_argument("--useragent", default="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36")\n\
73
- parser.add_argument("--debug", action="store_true", default=False)\n\
74
- args = parser.parse_args()\n\
75
- \n\
76
- print(f"[INFO] Starting API server on http://{args.host}:{args.port}")\n\
77
- print(f"[INFO] Using browser: chrome")\n\
78
- \n\
79
- # Call create_app dengan argumen yang valid saja\n\
80
- app = create_app(\n\
81
- headless=args.headless,\n\
82
- useragent=args.useragent,\n\
83
- debug=args.debug\n\
84
- )\n\
85
- app.run(host=args.host, port=args.port)' > run_api.py
86
-
87
- # Jalankan API server
88
- CMD ["python", "run_api.py", "--host", "0.0.0.0", "--port", "7860", "--headless", "--useragent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"]
 
 
1
  FROM python:3.11-slim
2
 
3
+ WORKDIR /app
4
+
5
  RUN apt-get update && apt-get install -y \
6
  wget \
7
+ gnupg \
8
+ ca-certificates \
9
+ fonts-liberation \
10
+ libasound2 \
 
 
 
11
  libatk-bridge2.0-0 \
12
+ libatk1.0-0 \
13
+ libatspi2.0-0 \
14
  libcups2 \
15
+ libdbus-1-3 \
16
  libdrm2 \
17
+ libgbm1 \
18
+ libgtk-3-0 \
19
+ libnspr4 \
20
+ libnss3 \
21
+ libwayland-client0 \
22
  libxcomposite1 \
23
  libxdamage1 \
24
  libxfixes3 \
25
+ libxkbcommon0 \
26
  libxrandr2 \
27
+ xdg-utils \
28
+ libu2f-udev \
29
+ libvulkan1 \
30
+ git \
 
 
 
 
 
 
 
31
  && rm -rf /var/lib/apt/lists/*
32
 
33
+ RUN git clone https://github.com/Theyka/Turnstile-Solver.git .
 
 
 
 
 
34
 
 
35
  RUN pip install --no-cache-dir -r requirements.txt
36
 
37
+ RUN python -m patchright install chromium
38
+
39
+ RUN pip install camoufox
40
 
41
+ # Set environment variables untuk cache directory yang writable
42
+ ENV HOME=/tmp
43
+ ENV XDG_CACHE_HOME=/tmp/.cache
44
+ ENV CAMOUFOX_CACHE_DIR=/tmp/camoufox
45
+
46
+ # Pre-install Camoufox dengan environment variable yang sudah di-set
47
+ RUN python -m camoufox fetch
48
+
49
+ # Buat direktori cache dan set permissions
50
+ RUN mkdir -p /tmp/.cache /tmp/camoufox && chmod -R 777 /tmp
51
 
 
52
  ENV PYTHONUNBUFFERED=1
53
+ ENV HOST=0.0.0.0
54
+ ENV PORT=7860
55
 
 
56
  EXPOSE 7860
57
 
58
+ CMD ["python", "api_solver.py", "--host", "0.0.0.0", "--port", "7860", "--headless", "true", "--browser_type", "camoufox", "--thread", "2"]