File size: 855 Bytes
0978d28
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# M1 image — intentionally minimal (no torch / ffmpeg yet) so the first HF Spaces
# build is fast and reliable. M2 adds the ML stack + ffmpeg + baked fast weights.
FROM python:3.12-slim

# HF Spaces runs containers as a non-root user with UID 1000.
# Create /app owned by `user` BEFORE dropping privilege — otherwise Docker creates
# the WORKDIR root-owned and later writes (M2 weight baking) fail.
RUN useradd -m -u 1000 user && mkdir -p /app && chown user:user /app
USER user
ENV HOME=/home/user \
    PATH=/home/user/.local/bin:$PATH \
    PYTHONUNBUFFERED=1

WORKDIR /app

COPY --chown=user pyproject.toml README.md ./
COPY --chown=user app ./app
RUN pip install --no-cache-dir --user .

# Port 7860 must stay in lockstep with README `app_port` and Settings.port.
EXPOSE 7860
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "7860"]