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"]