FROM python:3.12-slim

WORKDIR /app

RUN apt-get update && apt-get install -y --no-install-recommends     ca-certificates tini wget     && rm -rf /var/lib/apt/lists/*

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

COPY app/ ./app/
COPY scripts/entrypoint.sh ./entrypoint.sh
RUN chmod +x ./entrypoint.sh

RUN groupadd -r nimail && useradd -r -g nimail -d /app/data nimail     && mkdir -p /app/data     && chown nimail:nimail /app/data

USER nimail

EXPOSE 8080

HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3   CMD wget -q -O /dev/null "http://127.0.0.1:8080/health" || exit 1

ENV FLASK_APP=app:create_app()
ENV DATA_DIR=/app/data
ENV PORT=8080

STOPSIGNAL SIGTERM
ENTRYPOINT ["/usr/bin/tini", "--"]
CMD ["./entrypoint.sh"]
