FROM docker.io/library/python:3.12-slim

# Install uv
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/

# Install dependencies
RUN apt update && apt install --no-install-recommends --no-install-suggests -y \
    git \
    tesseract-ocr \
    sqlite3 && apt clean

WORKDIR /app

COPY pyproject.toml uv.lock README.md ./

RUN uv sync --no-dev --no-install-project --no-cache

# Copy source code (create permissive .dockerignore first)
# We need to override the vendor .dockerignore
RUN rm -f /app/.dockerignore 2>/dev/null || true
RUN cat > /app/.dockerignore << 'EOF'
*.pyc
__pycache__/
.venv/
.DS_Store
.git/
.gitignore
uv.lock
README.md
ARCHITECTURE.md
CONTRIBUTING.md
DEVELOPMENT.md
PROMPTS.md
TROUBLESHOOTING.md
EOF
COPY . .

RUN uv sync --no-dev --no-editable --no-cache

ENV PYTHONUNBUFFERED=1
ENV PATH=/app/.venv/bin:$PATH

ENTRYPOINT ["/app/.venv/bin/nextcloud-mcp-server"]
CMD ["run"]
