Spaces:
Build error
Build error
| # المرحلة 1: بناء واجهة Next.js | |
| FROM node:18-alpine AS node_builder | |
| WORKDIR /app | |
| # نسخ ملفات التعريف لتثبيت المكتبات أولاً (للاستفادة من الـ Cache) | |
| COPY frontend/package.json frontend/package-lock.json* ./ | |
| # التثبيت القسري لتجاوز تعارض إصدارات React 19 و Next 15 | |
| RUN npm install --force --legacy-peer-deps | |
| # نسخ باقي ملفات الواجهة | |
| COPY frontend/ . | |
| # بناء الواجهة وتصديرها كملفات ثابتة (Static HTML) | |
| RUN npm run build | |
| # --------------------------------------------------- | |
| # المرحلة 2: إعداد سيرفر البايثون (FastAPI) | |
| FROM python:3.10-slim | |
| WORKDIR /app | |
| # إنشاء مستخدم بصلاحيات محدودة (متطلب Hugging Face) | |
| RUN useradd -m -u 1000 user | |
| USER user | |
| ENV HOME=/home/user \ | |
| PATH=/home/user/.local/bin:$PATH | |
| WORKDIR $HOME/app | |
| # نسخ ملفات متطلبات البايثون وتثبيتها | |
| COPY --chown=user requirements.txt . | |
| RUN pip install --no-cache-dir -r requirements.txt | |
| # نسخ ملفات السيرفر والمكتبات الخاصة بك | |
| COPY --chown=user scripts/ ./scripts | |
| COPY --chown=user lib/ ./lib | |
| #COPY --chown=user .env .env | |
| # نقل الملفات التي تم بناؤها من مرحلة Node إلى مجلد static_ui للسيرفر | |
| COPY --chown=user --from=node_builder /app/out ./static_ui | |
| # نسخ كود التطبيق الرئيسي (تأكد من وجود main.py أو app.py) | |
| COPY --chown=user . . | |
| # تشغيل السيرفر على المنفذ 7860 (المنفذ الافتراضي لـ Hugging Face) | |
| CMD ["python", "main.py"] | |