FROM python:3.10-slim ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ OMP_NUM_THREADS=1 \ MKL_NUM_THREADS=1 \ PORT=7860 \ HOME=/home/user WORKDIR /app # تثبيت المكتبات اللازمة لـ OpenCV / Paddle / PDF RUN apt-get update && apt-get install -y --no-install-recommends \ poppler-utils \ libgl1 \ libglib2.0-0 \ libsm6 \ libxext6 \ libxrender1 \ libgomp1 \ ca-certificates \ wget \ && rm -rf /var/lib/apt/lists/* COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # إنشاء يوزر عادي RUN useradd -m -u 1000 user # تجهيز مسارات writable لـ paddlex resources/fonts RUN mkdir -p /home/user/.paddlex /home/user/.cache /tmp/paddlex_fonts && \ chown -R user:user /home/user /tmp/paddlex_fonts /app # مهم جدًا: # paddlex كان بيحاول يكتب font داخل site-packages # فنسمح بالكتابة على فولدر fonts نفسه RUN mkdir -p /usr/local/lib/python3.10/site-packages/paddlex/utils/fonts && \ chmod -R 777 /usr/local/lib/python3.10/site-packages/paddlex/utils/fonts COPY main.py . RUN chown -R user:user /app USER user EXPOSE 7860 CMD ["sh", "-c", "uvicorn main:app --host 0.0.0.0 --port ${PORT}"]