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"]