THEZYZSTUDIO commited on
Commit
9d44f8c
·
verified ·
1 Parent(s): 08dc3ef

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +46 -6
Dockerfile CHANGED
@@ -1,11 +1,16 @@
1
- # THE Z AI — Computer Mode Server v20 "Headless-Native"
2
- # أخف بكثير من Dockerfile السابق: لا حاجة لـ Xvfb, xdotool, ImageMagick,
3
- # x11-apps, أو python-xlib — Chromium بوضع headless=new يغني عن كل ذلك
4
- # (لا X server منفصل، لا أدوات التقاط شاشة خارجية).
 
 
 
 
5
 
6
  FROM python:3.11-slim
7
 
8
- # فقط Chromium نفسه + مكتبات النظام التي يحتاجها ليعمل بدون واجهة رسومية
 
9
  RUN apt-get update && apt-get install -y --no-install-recommends \
10
  chromium \
11
  fonts-liberation \
@@ -13,6 +18,35 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
13
  fonts-noto-cjk \
14
  ca-certificates \
15
  curl \
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  && rm -rf /var/lib/apt/lists/*
17
 
18
  WORKDIR /app
@@ -20,12 +54,18 @@ WORKDIR /app
20
  COPY requirements.txt .
21
  RUN pip install --no-cache-dir -r requirements.txt
22
 
 
 
 
 
 
 
23
  COPY app.py .
24
 
25
  # مستخدم غير root (مطلوب لتشغيل Chromium بأمان بدون --no-sandbox في بعض البيئات،
26
  # لكن نبقي --no-sandbox في app.py لأن الحاويات المُدارة مثل HF Spaces عادة تمنع
27
  # إنشاء namespaces اللازمة لـ sandbox الكامل لـ Chromium على أي حال)
28
- RUN useradd -m -u 1000 zai
29
  USER zai
30
  ENV HOME=/home/zai
31
 
 
1
+ # THE Z AI — Computer Mode Server v20.2 "Headless-Native + Camoufox"
2
+ # أخف بكثير من Dockerfile السابق (v11-v13): لا حاجة لـ Xvfb, xdotool,
3
+ # ImageMagick, x11-apps, أو python-xlib — Chromium بوضع headless=new يغني
4
+ # عن كل ذلك (لا X server منفصل، لا أدوات التقاط شاشة خارجية).
5
+ #
6
+ # إضافة v20.2: مكتبات نظام لدعم Camoufox (Firefox معدَّل مضاد للكشف) كمحرك
7
+ # بديل اختياري — يُستخدم فقط عند طلب switch_engine صراحة، فلا يُثقّل التشغيل
8
+ # العادي (Chromium يبقى المحرك الافتراضي السريع لكل الجلسات).
9
 
10
  FROM python:3.11-slim
11
 
12
+ # Chromium (المحرك الافتراضي) + مكتبات نظام Firefox/Camoufox (المحرك البديل
13
+ # المضاد للكشف) + خطوط متعددة اللغات لعرض صحيح للعربية والصينية واليابانية.
14
  RUN apt-get update && apt-get install -y --no-install-recommends \
15
  chromium \
16
  fonts-liberation \
 
18
  fonts-noto-cjk \
19
  ca-certificates \
20
  curl \
21
+ libasound2 \
22
+ libatk1.0-0 \
23
+ libcairo-gobject2 \
24
+ libcairo2 \
25
+ libdbus-1-3 \
26
+ libfontconfig1 \
27
+ libfreetype6 \
28
+ libgdk-pixbuf-2.0-0 \
29
+ libglib2.0-0 \
30
+ libgtk-3-0 \
31
+ libpango-1.0-0 \
32
+ libpangocairo-1.0-0 \
33
+ libx11-6 \
34
+ libx11-xcb1 \
35
+ libxcb-shm0 \
36
+ libxcb1 \
37
+ libxcomposite1 \
38
+ libxcursor1 \
39
+ libxdamage1 \
40
+ libxext6 \
41
+ libxfixes3 \
42
+ libxi6 \
43
+ libxrandr2 \
44
+ libxrender1 \
45
+ fonts-noto-color-emoji \
46
+ fonts-unifont \
47
+ fonts-ipafont-gothic \
48
+ fonts-wqy-zenhei \
49
+ fonts-freefont-ttf \
50
  && rm -rf /var/lib/apt/lists/*
51
 
52
  WORKDIR /app
 
54
  COPY requirements.txt .
55
  RUN pip install --no-cache-dir -r requirements.txt
56
 
57
+ # ثنائي Firefox المعدَّل الخاص بـ Camoufox — يُنزَّل وقت البناء (مرة واحدة،
58
+ # ~150-300MB) بدل وقت أول طلب switch_engine (يتجنب تأخير أول استخدام في
59
+ # الإنتاج). إذا فشل التنزيل (مثلاً بيئة بناء بلا إنترنت)، الصورة تُبنى
60
+ # بنجاح مع ذلك — Camoufox يبقى غير متاح وقتها ويعمل السيرفر بـ Chromium فقط.
61
+ RUN python3 -m camoufox fetch || echo "⚠️ فشل تنزيل Camoufox — سيعمل السيرفر بـ Chromium فقط"
62
+
63
  COPY app.py .
64
 
65
  # مستخدم غير root (مطلوب لتشغيل Chromium بأمان بدون --no-sandbox في بعض البيئات،
66
  # لكن نبقي --no-sandbox في app.py لأن الحاويات المُدارة مثل HF Spaces عادة تمنع
67
  # إنشاء namespaces اللازمة لـ sandbox الكامل لـ Chromium على أي حال)
68
+ RUN useradd -m -u 1000 zai && chown -R zai:zai /app
69
  USER zai
70
  ENV HOME=/home/zai
71