# ══════════════════════════════════════════════════ # Phoenix AI — Dockerfile (CPU + OCR) # ══════════════════════════════════════════════════ # بناء: docker build -t phoenix-ocr . # تشغيل: docker run -p 8001:8001 phoenix-ocr # ══════════════════════════════════════════════════ FROM python:3.12-slim ENV DEBIAN_FRONTEND=noninteractive ENV PYTHONUNBUFFERED=1 ENV PYTHONDONTWRITEBYTECODE=1 # تنصيب الأدوات الأساسية لـ OpenCV و kraken RUN apt-get update && apt-get install -y --no-install-recommends \ libgl1 libglib2.0-0 libsm6 libxext6 libxrender1 \ && rm -rf /var/lib/apt/lists/* # إعداد الدليل WORKDIR /app # تنصيب المتطلبات أولاً (للاستفادة من cache الطبقات) COPY backend/requirements.txt ./requirements.txt RUN pip install --upgrade pip && \ pip install --no-cache-dir --timeout=600 --retries=5 -r requirements.txt # ── دعم GPU (اختياري) ── # CPU افتراضياً. للبناء بدعم CUDA (تسريع 10-30×): # docker build --build-arg TORCH_VARIANT=cuda -t phoenix-ocr-gpu . # عجلات cu121 تحوي مكتبات CUDA؛ يكفي تمرير الـ GPU عند التشغيل (--gpus all). ARG TORCH_VARIANT=cpu RUN if [ "$TORCH_VARIANT" = "cuda" ]; then \ pip install --no-cache-dir --timeout=900 --retries=5 \ torch==2.4.1 torchvision==0.19.1 \ --index-url https://download.pytorch.org/whl/cu121 --force-reinstall && \ echo ">> CUDA torch مثبّت"; \ fi # نسخ الكود COPY backend/ ./backend/ COPY frontend/ ./frontend/ # نسخ النماذج COPY نماذج/ ./نماذج/ # لا ننسخ ملف .env داخل الصورة لضمان الأمان؛ يُفضل تمريره كمتغيرات بيئة عند التشغيل # المنفذ EXPOSE 8001 # نقطة الدخول WORKDIR /app/backend CMD ["python", "-m", "uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8001", "--workers", "2"]