# dojo/Dockerfile
FROM python:3.12-slim

WORKDIR /app

COPY pyproject.toml ./
COPY dojo ./dojo

RUN pip install --no-cache-dir .

ENV DOJO_DB_PATH=/data/dojo.db
ENV DOJO_PRIVATE_KEY_PATH=/data/dojo_private_key.raw

# Create /data directory and non-root user (must be done as root before USER switch)
RUN mkdir -p /data && \
    useradd -r -s /bin/false dojo && \
    chown -R dojo:dojo /data

VOLUME ["/data"]

EXPOSE 8088

# Switch to non-root user
USER dojo

# HEALTHCHECK using Python's urllib to avoid requiring curl
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
    CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8088/health')" || exit 1

CMD ["uvicorn", "dojo.app:app", "--host", "0.0.0.0", "--port", "8088"]
