# Base image FROM python:3.11-slim # ------------------- # Environment # ------------------- ENV PYTHONUNBUFFERED=1 \ TZ=UTC \ HOME=/home/user \ PATH=/home/user/.local/bin:$PATH # ------------------- # Install system dependencies # ------------------- RUN apt-get update && apt-get install -y \ build-essential \ libsndfile1 \ ffmpeg \ && rm -rf /var/lib/apt/lists/* # ------------------- # Create non-root user (UID 1000 for Hugging Face) # ------------------- RUN useradd -m -u 1000 user # ------------------- # Create workdir and set ownership # ------------------- WORKDIR /app RUN chown -R user:user /app # ------------------- # Copy code with proper ownership # ------------------- COPY --chown=user:user requirements.txt . RUN pip install --no-cache-dir --user -r requirements.txt COPY --chown=user:user app ./app COPY --chown=user:user models ./models # ------------------- # Expose port # ------------------- EXPOSE 7860 # ------------------- # Run FastAPI # ------------------- CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "7860", "--workers", "1"]