Ali112009 commited on
Commit
8efb248
·
verified ·
1 Parent(s): 8ff8a12

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +48 -44
Dockerfile CHANGED
@@ -1,49 +1,53 @@
1
- # Python 3.9 slim image
2
- FROM python:3.9-slim
3
 
4
- # 1. تثبيت المتطلبات الأساسية
5
- RUN apt-get update && apt-get install -y \
6
- ffmpeg \
7
- imagemagick \
8
- libfribidi-dev \
9
- libharfbuzz-dev \
10
- libraqm-dev \
11
- fonts-noto-core \
12
- fonts-noto-extra \
13
- && rm -rf /var/lib/apt/lists/*
14
-
15
- # 2. إعداد ImageMagick policy لـ moviepy
16
- RUN sed -i 's/rights="none" pattern="PDF"/rights="read|write" pattern="PDF"/g' /etc/ImageMagick-6/policy.xml 2>/dev/null || true
17
-
18
- # 3. مجلد العمل
19
  WORKDIR /app
20
 
21
- # 4. نسخ الخطوط
22
- COPY fonts /app/fonts
23
-
24
- # 5. نسخ المتطلبات وتثبيتها
25
- COPY requirements.txt .
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
  RUN pip install --no-cache-dir -r requirements.txt
27
 
28
- # 6. نسخ باقي الكود
29
- COPY . .
30
-
31
- # 7. إنشاء المجلدات المطلوبة مع صلاحيات كاملة
32
- # HF Spaces يحب أن تكون الملفات المؤقتة في /tmp أو /data
33
- RUN mkdir -p /app/temp_workspaces \
34
- /app/outputs \
35
- /app/vision \
36
- /app/cache_mp3quran \
37
- && chmod -R 777 /app
38
-
39
- # 8. متغيرات البيئة
40
- ENV PYTHONIOENCODING=utf-8
41
- ENV LANG=C.UTF-8
42
- ENV LC_ALL=C.UTF-8
43
- ENV PYTHONUNBUFFERED=1
44
-
45
- # 9. المنفذ المطلوب لـ Hugging Face
46
- EXPOSE 7860
47
-
48
- # 10. التشغيل
49
- CMD ["python", "main.py"]
 
1
+ # 1. استخدام نسخة Bullseye المستقرة
2
+ FROM python:3.9-bullseye
3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  WORKDIR /app
5
 
6
+ # 2. تثبيت البرامج الضرورية
7
+ # استبدلنا fonts-noto بـ fonts-kacst (خطوط عربية خفيفة ومضمونة)
8
+ RUN apt-get update && \
9
+ apt-get install -y \
10
+ git \
11
+ ffmpeg \
12
+ imagemagick \
13
+ ghostscript \
14
+ fonts-liberation \
15
+ fonts-kacst && \
16
+ rm -rf /var/lib/apt/lists/*
17
+
18
+ # 3. فتح قيود ImageMagick بالكامل (الحل النووي)
19
+ # ده بيسمح بقراءة الملفات المؤقتة (@) والنصوص (TXT)
20
+ RUN echo '<policymap> \
21
+ <policy domain="path" rights="read|write" pattern="@*" /> \
22
+ <policy domain="coder" rights="read|write" pattern="TXT" /> \
23
+ <policy domain="coder" rights="read|write" pattern="LABEL" /> \
24
+ </policymap>' > /etc/ImageMagick-6/policy.xml
25
+
26
+ # 4. إنشاء المستخدم
27
+ RUN useradd -m -u 1000 user
28
+
29
+ # 5. سحب الكود (أول خطوة في التعامل مع الملفات عشان الفولدر يكون فاضي)
30
+ RUN git clone https://github.com/AliMahmoudDev/Quran-Reels-Generator.git .
31
+
32
+ # 6. تثبيت المكتبات
33
  RUN pip install --no-cache-dir -r requirements.txt
34
 
35
+ # 7. إنشاء المجلدات وإعطاء صلاحيات كاملة (777)
36
+ # عملنا فولدر my_temp عشان نبعد عن فولدرات النظام المحمية
37
+ RUN mkdir -p /app/my_temp /app/temp_videos /app/vision /app/temp_audio && \
38
+ chown -R user:user /app && \
39
+ chmod -R 777 /app
40
+
41
+ # 8. توجيه الملفات المؤقتة للفولدر بتاعنا
42
+ ENV TMPDIR=/app/my_temp
43
+ ENV TEMP=/app/my_temp
44
+ ENV TMP=/app/my_temp
45
+ ENV IMAGEMAGICK_BINARY=/usr/bin/convert
46
+
47
+ # 9. التشغيل
48
+ USER user
49
+ ENV HOME=/home/user \
50
+ PATH=/home/user/.local/bin:$PATH
51
+
52
+ ENV FLASK_APP=main.py
53
+ CMD ["flask", "run", "--host=0.0.0.0", "--port=7860"]