| # استخدام صورة Python رسمية | |
| FROM python:3.10-slim | |
| # تثبيت حزم النظام الضرورية | |
| RUN apt-get update && apt-get install -y \ | |
| gcc \ | |
| curl \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # تعيين متغيرات البيئة | |
| ENV PYTHONUNBUFFERED=1 \ | |
| PYTHONDONTWRITEBYTECODE=1 \ | |
| PORT=7860 | |
| # إنشاء مستخدم غير جذري | |
| RUN useradd -m -u 1000 genisi && \ | |
| mkdir -p /app /home/genisi/.cache && \ | |
| chown -R genisi:genisi /app /home/genisi/.cache | |
| # التبديل إلى المستخدم الجذري للتثبيت | |
| USER root | |
| # تعيين مجلد العمل | |
| WORKDIR /app | |
| # نسخ ملف المتطلبات أولاً (للاستفادة من طبقة التخزين المؤقت) | |
| COPY --chown=genisi:genisi requirements.txt . | |
| # تثبيت المتطلبات | |
| RUN pip install --no-cache-dir -r requirements.txt | |
| # نسخ باقي الملفات | |
| COPY --chown=genisi:genisi . . | |
| # التبديل إلى المستخدم غير الجذري | |
| USER genisi | |
| # تعريف المنفذ | |
| EXPOSE 7860 | |
| # أمر التشغيل | |
| CMD ["python", "app.py"] |