MJ-Cat / Dockerfile
Irell Zane
feat: set up service for MJ-Cat
e6c076c
Raw
History Blame Contribute Delete
1.11 kB
# 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"]