# The kit needs no dependencies, so the image is just Python plus the code.
# Use this if you prefer Docker to a systemd unit.
#
#   docker build -f deploy/Dockerfile -t coopmarket .
#   docker run -d --name coopmarket -p 8080:8080 \
#       -v coopmarket-data:/data coopmarket
#
# Create the co-op inside the container first:
#   docker exec -it coopmarket python3 run.py init --db /data/coopmarket.db \
#       --coop-name "Riverside Deliveries Co-op" \
#       --admin "Chair:chair@example.org:a-long-passphrase"

FROM python:3.12-slim

ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    COOPMARKET_QUIET=1

WORKDIR /app
COPY . /app
RUN useradd --system --uid 10001 --create-home coopmarket \
    && mkdir -p /data \
    && chown -R coopmarket:coopmarket /app /data

USER coopmarket
VOLUME ["/data"]
EXPOSE 8080

HEALTHCHECK --interval=60s --timeout=5s --start-period=5s \
    CMD python3 -c "import urllib.request,sys; sys.exit(0 if urllib.request.urlopen('http://127.0.0.1:8080/api/health',timeout=4).status==200 else 1)"

CMD ["python3", "run.py", "serve", "--db", "/data/coopmarket.db", "--host", "0.0.0.0", "--port", "8080"]
