Adarshu07 commited on
Commit
cf57e4e
Β·
verified Β·
1 Parent(s): f9c817e

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +49 -78
Dockerfile CHANGED
@@ -1,102 +1,73 @@
1
- # ╔══════════════════════════════════════════════════════════════╗
2
- # β•‘ Dockerfile β€” Cloudflare AI API β•‘
3
- # β•‘ β•‘
4
- # β•‘ Stack: Python 3.11 Β· FastAPI Β· Chrome Β· Xvfb β•‘
5
- # β•‘ Port: 7860 (HuggingFace Spaces default) β•‘
6
- # β•‘ β•‘
7
- # β•‘ NOTE: We use Xvfb (virtual framebuffer) instead of β•‘
8
- # β•‘ Chrome --headless because Cloudflare blocks β•‘
9
- # β•‘ headless user agents at the WebSocket level. β•‘
10
- # β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•
11
-
12
  FROM python:3.11-slim
13
 
14
- # ── System deps & Xvfb ────────────────────────────────────────
 
 
 
 
 
 
 
15
  RUN apt-get update && apt-get install -y --no-install-recommends \
16
- # Xvfb virtual framebuffer
17
- xvfb \
18
- # Chrome runtime deps
19
- wget \
20
- gnupg \
21
- ca-certificates \
22
- libx11-6 \
23
- libx11-xcb1 \
24
- libxcb1 \
25
- libxcomposite1 \
26
- libxcursor1 \
27
- libxdamage1 \
28
- libxext6 \
29
- libxfixes3 \
30
- libxi6 \
31
- libxrandr2 \
32
- libxrender1 \
33
- libxss1 \
34
- libxtst6 \
35
- libglib2.0-0 \
36
- libgtk-3-0 \
37
- libnspr4 \
38
- libnss3 \
39
- libatk1.0-0 \
40
- libatk-bridge2.0-0 \
41
- libdrm2 \
42
- libgbm1 \
43
- libcups2 \
44
- libasound2 \
45
- libpango-1.0-0 \
46
- libpangocairo-1.0-0 \
47
- fonts-liberation \
48
- libappindicator3-1 \
49
- xdg-utils \
50
- lsb-release \
51
  && rm -rf /var/lib/apt/lists/*
52
 
53
- # ── Google Chrome stable ───────────────────────────────────────
54
- RUN wget -q -O /tmp/chrome.deb \
55
- https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \
56
  && apt-get update \
57
  && apt-get install -y --no-install-recommends /tmp/chrome.deb \
58
  && rm -f /tmp/chrome.deb \
59
  && rm -rf /var/lib/apt/lists/* \
60
- # Verify Chrome installed
61
  && google-chrome --version
62
 
63
- # ── Working directory ──────────────────────────────────────────
64
  WORKDIR /app
65
 
66
- # ── Python deps ────────────────────────────────────────────────
67
  COPY requirements.txt .
68
  RUN pip install --no-cache-dir --upgrade pip \
69
  && pip install --no-cache-dir -r requirements.txt
70
 
71
- # ── App source ─────────────────────────────────────────────────
72
  COPY cloudflare_provider.py .
73
- COPY server.py .
74
-
75
- # ── Cache directory ────────────────────────────────────────────
76
- RUN mkdir -p /app/cache
77
 
78
- # ── Non-root user (HuggingFace Spaces requirement) ─────────────
79
- RUN useradd -m -u 1000 appuser \
80
  && chown -R appuser:appuser /app
81
- USER appuser
82
 
83
- # ── Environment ────────────────────────────────────────────────
84
- ENV PYTHONUNBUFFERED=1 \
85
- PYTHONDONTWRITEBYTECODE=1 \
86
- # Enable Xvfb virtual display β€” REQUIRED (no headless Chrome)
87
- VR_DISPLAY=1 \
88
- # Pool: 2 pre-warmed connections
89
- POOL_SIZE=2 \
90
- # Port
91
- PORT=7860 \
92
- HOST=0.0.0.0 \
93
- # Health monitor interval (seconds)
94
- HEALTH_INTERVAL=60 \
95
- # Default model
96
- DEFAULT_MODEL=@cf/moonshotai/kimi-k2.5
97
 
98
- # ── Expose ─────────────────────────────────────────────────────
99
  EXPOSE 7860
100
 
101
- # ── Start server ───────────────────────────────────────────────
102
- CMD ["python", "server.py"]
 
 
 
 
 
 
 
 
 
 
 
 
1
  FROM python:3.11-slim
2
 
3
+ ENV DEBIAN_FRONTEND=noninteractive \
4
+ PYTHONUNBUFFERED=1 \
5
+ PYTHONDONTWRITEBYTECODE=1 \
6
+ PORT=7860 \
7
+ HOST=0.0.0.0 \
8
+ DISPLAY=:99 \
9
+ DEFAULT_MODEL=@cf/moonshotai/kimi-k2.5
10
+
11
  RUN apt-get update && apt-get install -y --no-install-recommends \
12
+ xvfb \
13
+ wget \
14
+ gnupg \
15
+ ca-certificates \
16
+ curl \
17
+ libx11-6 \
18
+ libx11-xcb1 \
19
+ libxcb1 \
20
+ libxcomposite1 \
21
+ libxcursor1 \
22
+ libxdamage1 \
23
+ libxext6 \
24
+ libxfixes3 \
25
+ libxi6 \
26
+ libxrandr2 \
27
+ libxrender1 \
28
+ libxss1 \
29
+ libxtst6 \
30
+ libglib2.0-0 \
31
+ libgtk-3-0 \
32
+ libnspr4 \
33
+ libnss3 \
34
+ libatk1.0-0 \
35
+ libatk-bridge2.0-0 \
36
+ libdrm2 \
37
+ libgbm1 \
38
+ libcups2 \
39
+ libasound2 \
40
+ libpango-1.0-0 \
41
+ libpangocairo-1.0-0 \
42
+ fonts-liberation \
43
+ xdg-utils \
44
+ lsb-release \
 
 
45
  && rm -rf /var/lib/apt/lists/*
46
 
47
+ RUN wget -O /tmp/chrome.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \
 
 
48
  && apt-get update \
49
  && apt-get install -y --no-install-recommends /tmp/chrome.deb \
50
  && rm -f /tmp/chrome.deb \
51
  && rm -rf /var/lib/apt/lists/* \
 
52
  && google-chrome --version
53
 
 
54
  WORKDIR /app
55
 
 
56
  COPY requirements.txt .
57
  RUN pip install --no-cache-dir --upgrade pip \
58
  && pip install --no-cache-dir -r requirements.txt
59
 
 
60
  COPY cloudflare_provider.py .
61
+ COPY server.py .
62
+ COPY start.sh /app/start.sh
63
+ RUN chmod +x /app/start.sh
 
64
 
65
+ RUN mkdir -p /app/cache \
66
+ && useradd -m -u 1000 appuser \
67
  && chown -R appuser:appuser /app
 
68
 
69
+ USER appuser
 
 
 
 
 
 
 
 
 
 
 
 
 
70
 
 
71
  EXPOSE 7860
72
 
73
+ CMD ["/app/start.sh"]