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