FROM python:3.12-slim

LABEL org.opencontainers.image.title="dms-api" \
      org.opencontainers.image.description="HTTPS admin API for docker-mailserver" \
      org.opencontainers.image.source="https://files.spannerjun.top/sharekit-release/"

ENV PYTHONUNBUFFERED=1 \
    PYTHONDONTWRITEBYTECODE=1

# Install docker CLI (needed to talk to the host's docker.sock)
RUN apt-get update && apt-get install -y --no-install-recommends \
        ca-certificates curl gnupg && \
    install -m 0755 -d /etc/apt/keyrings && \
    curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg && \
    chmod a+r /etc/apt/keyrings/docker.gpg && \
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(. /etc/os-release && echo $VERSION_CODENAME) stable" \
        > /etc/apt/sources.list.d/docker.list && \
    apt-get update && apt-get install -y --no-install-recommends docker-ce-cli wget && \
    rm -rf /var/lib/apt/lists/*

WORKDIR /app
RUN pip install --no-cache-dir 'fastapi>=0.110' 'uvicorn[standard]>=0.27' 'pydantic>=2.5'

COPY app.py /app/app.py

EXPOSE 8791
ENTRYPOINT ["python", "app.py"]
