File size: 1,113 Bytes
e6c076c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | # 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"]
|