FROM python:3.11-slim-bookworm

RUN apt-get update && apt-get install -y --no-install-recommends \
    libsqlite3-0 ca-certificates curl build-essential && \
    rm -rf /var/lib/apt/lists/*

WORKDIR /app

COPY . .
RUN pip install --no-cache-dir . && pip install --no-cache-dir uvicorn[standard] silk-python Pillow

RUN mkdir -p /data/media /data/db

ENV WXARK_DB_PATH=/data/db/wxark.db
ENV WXARK_MEDIA_ROOT=/data/media
ENV WXARK_HOST=0.0.0.0
ENV WXARK_PORT=8000

EXPOSE 8000

VOLUME ["/data"]

HEALTHCHECK --interval=30s --timeout=10s --retries=3 \
    CMD curl -f http://localhost:8000/api/v1/health || exit 1

CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000", "--proxy-headers"]
