FROM python:3.11-slim-bookworm
ENV PLAYWRIGHT_BROWSERS_PATH=/opt/ms-playwright DEBIAN_FRONTEND=noninteractive PYTHONUNBUFFERED=1 HOME=/home/corentra \
    HF_HOME=/home/corentra/.cache/huggingface TORCH_HOME=/home/corentra/.cache/torch \
    U2NET_HOME=/home/corentra/.cache/rembg OMP_NUM_THREADS=2 OPENBLAS_NUM_THREADS=2 XDG_DATA_HOME=/home/corentra/.cache/share XDG_CACHE_HOME=/home/corentra/.cache
RUN apt-get update && apt-get install -y --no-install-recommends \
    libreoffice-writer libreoffice-calc libreoffice-impress \
    ghostscript qpdf tesseract-ocr tesseract-ocr-eng tesseract-ocr-urd tesseract-ocr-ara \
    ffmpeg fonts-dejavu-core fonts-noto-core fonts-noto-extra libgomp1 libgl1 \
    libglib2.0-0 libsndfile1 build-essential pkg-config && rm -rf /var/lib/apt/lists/*
WORKDIR /app
RUN pip install --no-cache-dir torch==2.5.1 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cpu
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt && playwright install --with-deps chromium
RUN useradd --create-home corentra && mkdir -p /data /home/corentra/.cache && chown -R corentra:corentra /data /home/corentra /app
COPY --chown=corentra:corentra app/ ./app/
USER corentra
EXPOSE 8000
CMD ["uvicorn", "app.api:app", "--host", "0.0.0.0", "--port", "8000", "--workers", "1"]
