gebsunamy commited on
Commit
a2dd162
·
verified ·
1 Parent(s): 1554a21

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +17 -18
Dockerfile CHANGED
@@ -1,50 +1,49 @@
1
- # المرحلة الأولى: البناء (Build Stage)
2
  FROM node:22-slim AS builder
 
 
 
 
3
  WORKDIR /app
4
 
5
- # تثبيت git إذا كنت تريد جلب الكود أثناء البناء (اختياري إذا كان الملف داخل المستودع)
6
- RUN apt-get update && apt-get install -y git
7
 
8
- # نسخ ملفات التعريف وتثبيت الاعتماديات
9
- COPY package*.json ./
10
  RUN npm install
11
-
12
- # نسخ بقية الملفات وبناء المشروع
13
- COPY . .
14
  RUN npm run build
15
 
16
- # المرحلة الثانية: التشغيل (Production Stage)
17
  FROM node:22-slim
18
  WORKDIR /app
19
 
20
- # تثبيت FFmpeg والخطوط العربية (ضرورية جداً لمشروعك)
21
  RUN apt-get update && apt-get install -y \
22
  ffmpeg \
23
  fonts-dejavu-core \
24
  fonts-freefont-ttf \
25
  fonts-noto-core \
26
- fonts-noto-cjk \
27
  fonts-noto-ui-core \
28
  && rm -rf /var/lib/apt/lists/*
29
 
30
- # نسخ الملفات المبنية من المرحلة الأولى
31
  COPY --from=builder /app/package*.json ./
32
  COPY --from=builder /app/dist ./dist
33
  COPY --from=builder /app/client/dist ./client/dist
34
  COPY --from=builder /app/assets ./assets
35
  COPY --from=builder /app/free-photo-of-holy-quran-under-sunlight.webp ./
36
 
37
- # إنشاء المجلدات وضبط الصلاحيات لبيئة Hugging Face
38
- # ملاحظة: Hugging Face يستخدم مستخدم غير جذر (non-root) بصلاحيات محدودة
39
- RUN mkdir -p outputs temp assets/backgrounds && chmod -R 777 outputs temp assets
40
 
41
- # تثبيت اعتماديات التشغيل فقط
42
  RUN npm install --omit=dev
43
 
44
- # تحديث المنفذ إلى 7860 (المنفذ الافتراضي لـ Hugging Face)
45
- EXPOSE 7860
46
  ENV PORT=7860
47
  ENV NODE_ENV=production
 
48
 
49
  # تشغيل التطبيق
50
  CMD ["node", "dist/index.js"]
 
1
+ # المرحلة الأولى: جلب الكود وبناؤه
2
  FROM node:22-slim AS builder
3
+
4
+ # تثبيت git لجلب المستودع
5
+ RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/*
6
+
7
  WORKDIR /app
8
 
9
+ # جلب المشروع من GitHub مباشرة
10
+ RUN git clone https://github.com/AmmarBasha2011/QuranVideoGeneratorAPI.git .
11
 
12
+ # تثبيت الاعتماديات وبناء المشروع (React + TypeScript)
 
13
  RUN npm install
 
 
 
14
  RUN npm run build
15
 
16
+ # المرحلة الثانية: التشغيل (صورة خفيفة)
17
  FROM node:22-slim
18
  WORKDIR /app
19
 
20
+ # تثبيت FFmpeg والخطوط العربية (ضرورية جداً للرندر)
21
  RUN apt-get update && apt-get install -y \
22
  ffmpeg \
23
  fonts-dejavu-core \
24
  fonts-freefont-ttf \
25
  fonts-noto-core \
 
26
  fonts-noto-ui-core \
27
  && rm -rf /var/lib/apt/lists/*
28
 
29
+ # نسخ الملفات من مرحلة البناء
30
  COPY --from=builder /app/package*.json ./
31
  COPY --from=builder /app/dist ./dist
32
  COPY --from=builder /app/client/dist ./client/dist
33
  COPY --from=builder /app/assets ./assets
34
  COPY --from=builder /app/free-photo-of-holy-quran-under-sunlight.webp ./
35
 
36
+ # إنشاء المجلدات وضبط الصلاحيات (إجباري لبيئة Hugging Face)
37
+ RUN mkdir -p outputs temp assets/backgrounds && \
38
+ chmod -R 777 /app/outputs /app/temp /app/assets
39
 
40
+ # تثبيت مكتبات التشغيل فقط
41
  RUN npm install --omit=dev
42
 
43
+ # إعدادات المنافذ (Hugging Face يتوقع 7860)
 
44
  ENV PORT=7860
45
  ENV NODE_ENV=production
46
+ EXPOSE 7860
47
 
48
  # تشغيل التطبيق
49
  CMD ["node", "dist/index.js"]