FROM python:3.9-slim WORKDIR /app # Copy requirements first for better caching COPY requirements.txt . # Install dependencies RUN pip install --no-cache-dir -r requirements.txt # Copy the rest of the application COPY . . # Create necessary directories with proper permissions RUN mkdir -p /app/data /app/temp /tmp/huggingface-cache && \ chmod -R 777 /app/data /app/temp /tmp/huggingface-cache && \ chown -R 1000:1000 /app/data /app/temp /tmp/huggingface-cache # Set environment variables for cache locations ENV TRANSFORMERS_CACHE=/tmp/huggingface-cache ENV HF_HOME=/tmp/huggingface-cache ENV SENTENCE_TRANSFORMERS_HOME=/tmp/huggingface-cache # Expose the port that the app will run on EXPOSE 7860 # Set environment variables for Hugging Face Spaces ENV PYTHONUNBUFFERED=1 ENV HOST=0.0.0.0 ENV PORT=7860 # Switch to non-root user for better security RUN useradd -m -u 1000 appuser USER appuser # Command to run the application CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]