FROM python:3.12-slim

ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    PIP_NO_CACHE_DIR=1

WORKDIR /app

RUN apt-get update && apt-get install -y --no-install-recommends \
    fonts-dejavu-core \
    fonts-liberation \
    && rm -rf /var/lib/apt/lists/*

COPY requirements.txt .
RUN python -m pip install --upgrade pip==26.2.1 \
    && pip install --requirement requirements.txt

COPY . .
RUN addgroup --system inviteme \
    && adduser --system --ingroup inviteme --home /app inviteme \
    && mkdir -p /app/instance/uploads \
    && chown -R inviteme:inviteme /app

USER inviteme

EXPOSE 8888

HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \
    CMD ["python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8888/healthz', timeout=3)"]

CMD ["python", "run_waitress.py"]
