Restreamer / Dockerfile
AmmarBasha2011's picture
Update Dockerfile
8a55a22 verified
Raw
History Blame Contribute Delete
2.01 kB
# 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"]