FROM python:3.12-slim # Set working directory WORKDIR /app # Copy requirements first for better caching COPY requirements.txt . # Install Python dependencies RUN pip install --no-cache-dir -r requirements.txt # Copy the entire application COPY . . # Create necessary directories RUN mkdir -p app/uploads app/data /app/huggingface_cache # ---------------------------- # Add a non-root user (optional but recommended) # ---------------------------- RUN useradd -m -u 1000 user RUN chown -R user:user /app USER user # Set environment variables ENV PYTHONPATH=/app \ PORT=7860 \ HF_HOME=/app/huggingface_cache \ TRANSFORMERS_CACHE=/app/huggingface_cache\ DATABASE_PATH=/tmp/claridoc_data/sessions.db # Expose the port that Hugging Face Spaces expects EXPOSE 7860 # Health check HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \ CMD curl -f http://localhost:7860/health || exit 1 # Command to run the FastAPI application CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]