FROM python:3.12-slim

ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    DATA_DIR=/data

WORKDIR /app

RUN apt-get update \
    && apt-get install -y --no-install-recommends curl \
    && rm -rf /var/lib/apt/lists/*

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

COPY friday_voice ./friday_voice
COPY web ./web

RUN useradd -r -u 1024 -g users friday \
    && mkdir -p /data \
    && chown -R 1024:100 /data /app

USER 1024:100

EXPOSE 8320

HEALTHCHECK --interval=30s --timeout=10s --retries=3 --start-period=20s \
  CMD curl -fsS http://127.0.0.1:8320/health || exit 1

CMD ["uvicorn", "friday_voice.app:app", "--host", "0.0.0.0", "--port", "8320"]
