FROM python:3.12-slim

ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    PROJECT_BUS_DATABASE=/data/project-bus.db \
    PROJECT_BUS_MIGRATIONS=/app/migrations \
    PROJECT_BUS_HOST=0.0.0.0 \
    PROJECT_BUS_PORT=8080

WORKDIR /app
COPY pyproject.toml README.md LICENSE ./
COPY src ./src
COPY migrations ./migrations
RUN pip install --no-cache-dir --no-deps . \
    && mkdir -p /data \
    && chown -R 65532:65532 /data

USER 65532:65532
EXPOSE 8080
VOLUME ["/data"]
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/healthz', timeout=2)"]
ENTRYPOINT ["project-bus"]
