FROM python:3.9-slim WORKDIR /app # Install system dependencies RUN apt-get update && apt-get install -y \ build-essential \ curl \ software-properties-common \ git \ poppler-utils \ libpoppler-cpp-dev \ tesseract-ocr \ tesseract-ocr-eng \ && rm -rf /var/lib/apt/lists/* # Copy requirements first for better caching COPY requirements.txt ./ RUN pip3 install --no-cache-dir -r requirements.txt # Copy application code COPY . . # Create necessary directories with proper permissions RUN mkdir -p /tmp/uploads /tmp/processed /app/.cache/huggingface RUN chmod -R 777 /tmp /app/.cache # Set environment variables for caching and permissions ENV TRANSFORMERS_CACHE=/app/.cache/huggingface ENV HF_HOME=/app/.cache/huggingface ENV TORCH_HOME=/app/.cache/torch ENV HF_DATASETS_CACHE=/app/.cache/huggingface/datasets # Expose FastAPI port EXPOSE 7860 # Health check for FastAPI HEALTHCHECK CMD curl --fail http://localhost:7860/health || exit 1 # Run FastAPI application CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]