gebsunamy commited on
Commit
e4ce572
·
verified ·
1 Parent(s): da16511

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +50 -0
Dockerfile ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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"]