ARG PYTHON_IMAGE=python:3.14-alpine
FROM ${PYTHON_IMAGE}

ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    PORT=8080

WORKDIR /srv

COPY payloads.sha256 /tmp/payloads.sha256
COPY app/index.html /srv/public/index.html
COPY app/src /srv/public/src
COPY app/offsets /srv/public/offsets
COPY app/payloads /srv/public/payloads
COPY docker/server.py /srv/server.py

RUN cd /srv/public && sha256sum -c /tmp/payloads.sha256 \
    && rm /tmp/payloads.sha256 \
    && chown -R 65532:65532 /srv

USER 65532:65532

EXPOSE 8080

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

CMD ["python", "/srv/server.py"]
