FROM python:3.12-slim ENV PYTHONUNBUFFERED=1 \ BUTTON_HOST=0.0.0.0 \ BUTTON_PORT=8000 \ BUTTON_DATA_FILE=/data/data.json \ BUTTON_DATABASE_FILE=/data/data.sqlite3 \ BUTTON_MAILING_LIST_FILE=/data/mailing_list.csv RUN useradd --system --uid 10001 --no-create-home button \ && mkdir /data && chown button /data WORKDIR /app COPY server.py ./ COPY static ./static USER button VOLUME /data EXPOSE 8000 # Python as PID 1 ignores SIGTERM; SIGINT raises KeyboardInterrupt for a clean exit. STOPSIGNAL SIGINT CMD ["python", "server.py"]