# 1. استخدام نسخة Node الكاملة والمجهزة مسبقاً بأدوات البناء الأساسية FROM docker.io/library/node:20 # 2. تثبيت أداة ffmpeg وأداة git-lfs وتحديث مستودعات النظام الأساسية RUN apt-get update && apt-get install -y ffmpeg git-lfs locales && rm -rf /var/lib/apt/lists/* # 3. إجبار النظام على دعم اللغة العربية وترميز UTF-8 لمنع مشاكل قراءة الملفات العربية ENV LANG=C.UTF-8 ENV LC_ALL=C.UTF-8 # 4. تحميل وتثبيت أداة yt-dlp الرسمية وإعطائها صلاحية التنفيذ للنظام RUN wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O /usr/local/bin/yt-dlp && \ chmod a+rx /usr/local/bin/yt-dlp # 5. حل مشكلة المعرف المشغول (UID 1000) عن طريق إعادة تسمية مستخدم node الافتراضي إلى user RUN usermod -l user -d /home/user -m node && \ groupmod -n user node # 6. إعداد متغيرات البيئة ومجلد العمل ENV HOME=/home/user WORKDIR /home/user/app # 7. تهيئة Git LFS للنظام، ثم جلب كود تطبيق البث، وسحب الفيديوهات الحقيقية كاملة (LFS Pull) RUN git lfs install && \ git clone -b huggingface https://github.com/AmmarBasha2011/my-restreamer . && \ git lfs pull # 8. تصحيح صلاحيات المجلدات بالكامل لتفادي مشاكل الأذونات أثناء تشغيل السكربتات وصناعة قوائم التشغيل RUN chown -R user:user /home/user # 9. الانتقال إلى حساب المستخدم (user) لتشغيل الحاوية بأمان توافقاً مع Hugging Face Spaces USER user # 10. تثبيت حزم الـ npm للمشروع RUN npm install # 11. تعيين المنفذ (PORT) الافتراضي للمنصة ENV PORT=7860 EXPOSE 7860 # 12. أمر تشغيل خادم البث CMD ["npm", "start"]