Arabi32 commited on
Commit
61b7383
·
verified ·
1 Parent(s): eea1df6

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +24 -15
Dockerfile CHANGED
@@ -1,38 +1,47 @@
1
- FROM python:3.10-slim
 
2
 
3
- # 1. تثبيت مكتبات النظام الأساسية للتعامل مع الصوت (مهم جداً لتجنب أخطاء libsndfile1)
4
  RUN apt-get update && apt-get install -y --no-install-recommends \
5
  gcc \
6
  g++ \
7
  libsndfile1 \
 
8
  && rm -rf /var/lib/apt/lists/*
9
 
10
- # 2. إعداد المستخدم بـ ID 1000 (متطلبات Hugging Face الصارمة للأمان)
11
  RUN useradd -m -u 1000 user
12
  USER user
13
-
14
- # 3. إعداد المتغيرات البيئية (بما فيها الموافقة التلقائية على شروط Coqui)
15
  ENV HOME=/home/user \
16
  PATH=/home/user/.local/bin:$PATH \
 
 
17
  COQUI_TOS_AGREED=1
18
 
19
  WORKDIR $HOME/app
20
 
21
- # 4. نسخ وتثبيت ملفات المتطلبات
22
- COPY --chown=user requirements.txt .
23
  RUN pip install --no-cache-dir --upgrade pip && \
24
- pip install --no-cache-dir -r requirements.txt
 
 
 
 
 
 
 
 
 
25
 
26
- # 5. الخطوة الذهبية: تنزيل وزن النموذج مسبقاً أثناء البناء
27
- # هذا السطر يستدعي الـ API ليقوم بالتحميل فقط والحفظ في مسار الكاش الافتراضي (بدون استدعاء CUDA)
28
  RUN python -c "from TTS.api import TTS; TTS('tts_models/multilingual/multi-dataset/xtts_v2')"
29
 
30
- # 6. نسخ باقي كود التطبيق
31
- COPY --chown=user . .
32
-
33
- # 7. إنشاء المجلدات المطلوبة لتجنب أخطاء الصلاحيات في بيئة Read-Only
34
  RUN mkdir -p voice_library outputs
35
 
36
- # 8. فتح المنفذ وتشغيل التطبيق
37
  EXPOSE 7860
 
38
  CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]
 
1
+ # استخدام نسخة كاملة من Python لضمان وجود أدوات البناء
2
+ FROM python:3.10
3
 
4
+ # 1. تحديث النظام وتثبيت المكتبات البرمجية الأساسية للصوت والبيئة
5
  RUN apt-get update && apt-get install -y --no-install-recommends \
6
  gcc \
7
  g++ \
8
  libsndfile1 \
9
+ ffmpeg \
10
  && rm -rf /var/lib/apt/lists/*
11
 
12
+ # 2. إعداد مستخدم Hugging Face الافتراضي (ID 1000) لتجنب مشاكل الصلاحيات
13
  RUN useradd -m -u 1000 user
14
  USER user
 
 
15
  ENV HOME=/home/user \
16
  PATH=/home/user/.local/bin:$PATH \
17
+ PYTHONPATH=$HOME/app \
18
+ PYTHONUNBUFFERED=1 \
19
  COQUI_TOS_AGREED=1
20
 
21
  WORKDIR $HOME/app
22
 
23
+ # 3. تثبيت المكتبات البرمجية مباشرة (بدون ملف requirements.txt)
24
+ # قمنا بدمج كافة المكتبات المطلوبة هنا لضمان تثبيتها في طبقة واحدة
25
  RUN pip install --no-cache-dir --upgrade pip && \
26
+ pip install --no-cache-dir \
27
+ coqui-tts \
28
+ fastapi \
29
+ uvicorn \
30
+ python-multipart \
31
+ torch \
32
+ typing-extensions
33
+
34
+ # 4. نسخ كود التطبيق (ملف app.py وأي ملفات أخرى بجانبه)
35
+ COPY --chown=user . .
36
 
37
+ # 5. تنزيل نموذج XTTS v2 وحفظه داخل الصورة (Image) لتسريع البدء لاحقاً
38
+ # يتم التحميل هنا أثناء البناء ليكون جاهزاً فور تشغيل الـ Space
39
  RUN python -c "from TTS.api import TTS; TTS('tts_models/multilingual/multi-dataset/xtts_v2')"
40
 
41
+ # 6. تجهيز مجلدات العمل لضمان صلاحيات الكتابة
 
 
 
42
  RUN mkdir -p voice_library outputs
43
 
44
+ # 7. تشغيل السيرفر على المنفذ المخصص لـ Hugging Face
45
  EXPOSE 7860
46
+
47
  CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]