Pcservercomp / Dockerfile
THEZYZSTUDIO's picture
Update Dockerfile
ac6c827 verified
Raw
History Blame Contribute Delete
3.26 kB
# THE Z AI — Computer Mode Server v20.2 "Headless-Native + Camoufox"
# أخف بكثير من Dockerfile السابق (v11-v13): لا حاجة لـ Xvfb, xdotool,
# ImageMagick, x11-apps, أو python-xlib — Chromium بوضع headless=new يغني
# عن كل ذلك (لا X server منفصل، لا أدوات التقاط شاشة خارجية).
#
# إضافة v20.2: مكتبات نظام لدعم Camoufox (Firefox معدَّل مضاد للكشف) كمحرك
# بديل اختياري — يُستخدم فقط عند طلب switch_engine صراحة، فلا يُثقّل التشغيل
# العادي (Chromium يبقى المحرك الافتراضي السريع لكل الجلسات).
FROM python:3.11-slim
# Chromium (المحرك الافتراضي) + مكتبات نظام Firefox/Camoufox (المحرك البديل
# المضاد للكشف) + خطوط متعددة اللغات لعرض صحيح للعربية والصينية واليابانية.
RUN apt-get update && apt-get install -y --no-install-recommends \
chromium \
fonts-liberation \
fonts-noto \
fonts-noto-cjk \
ca-certificates \
curl \
libasound2 \
libatk1.0-0 \
libcairo-gobject2 \
libcairo2 \
libdbus-1-3 \
libfontconfig1 \
libfreetype6 \
libgdk-pixbuf-2.0-0 \
libglib2.0-0 \
libgtk-3-0 \
libpango-1.0-0 \
libpangocairo-1.0-0 \
libx11-6 \
libx11-xcb1 \
libxcb-shm0 \
libxcb1 \
libxcomposite1 \
libxcursor1 \
libxdamage1 \
libxext6 \
libxfixes3 \
libxi6 \
libxrandr2 \
libxrender1 \
fonts-noto-color-emoji \
fonts-unifont \
fonts-ipafont-gothic \
fonts-wqy-zenhei \
fonts-freefont-ttf \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# ملاحظة v20.2.1: ثنائي Firefox المعدَّل الخاص بـ Camoufox لا يُنزَّل هنا وقت
# البناء — كان هذا يسبب "Job timeout" على HF Spaces لأن مجموع (apt + pip +
# تحميل Camoufox ~150-300MB) يتجاوز مهلة البناء المسموحة. بدلاً من ذلك،
# camoufox يُنزّل تلقائياً بأمان عند أول استخدام فعلي فقط (أول مرة يُرسل
# فيها action:"switch_engine" بـ engine:"camoufox") — انظر CamoufoxSession.start()
# في app.py: أول تشغيل قد يستغرق دقيقة إضافية (تحميل لمرة واحدة، يُخزَّن
# بعدها بشكل دائم داخل الحاوية)، لكن البناء نفسه يصبح أسرع بكثير ولا يتوقف.
# Chromium (المحرك الافتراضي السريع) يبقى جاهزاً فوراً بدون أي تأخير كالمعتاد.
COPY app.py .
# مستخدم غير root (مطلوب لتشغيل Chromium بأمان بدون --no-sandbox في بعض البيئات،
# لكن نبقي --no-sandbox في app.py لأن الحاويات المُدارة مثل HF Spaces عادة تمنع
# إنشاء namespaces اللازمة لـ sandbox الكامل لـ Chromium على أي حال)
RUN useradd -m -u 1000 zai && chown -R zai:zai /app
USER zai
ENV HOME=/home/zai
EXPOSE 7860
CMD ["python3", "app.py"]