# Bike-Tinder app container (Phase 4 deploy).
# The compose stack, systemd unit and Tailscale sidecar live beside this file —
# this file is only the app image contract.
FROM python:3.14-slim

WORKDIR /app

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

COPY app/ ./app/

# Data lands on the stack volume: /data/bike-tinder.sqlite3 and /data/img/.
# /state is the hunt state dir (bind-mounted read-only) used by POST /api/import.
EXPOSE 8000
CMD ["python", "-m", "app.serve", "--host", "0.0.0.0", "--port", "8000", \
     "--db", "/data/bike-tinder.sqlite3", "--img-dir", "/data/img", \
     "--state-dir", "/state"]
