# syntax=docker/dockerfile:1 FROM python:3.12-slim AS builder COPY --from=ghcr.io/astral-sh/uv:0.8.4 /uv /uvx /bin/ ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ UV_COMPILE_BYTECODE=1 \ UV_LINK_MODE=copy WORKDIR /app COPY pyproject.toml uv.lock ./ COPY src ./src RUN uv sync --frozen --no-dev COPY docs ./docs COPY zensical.toml ./ RUN uv run zensical build FROM python:3.12-slim AS runtime ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ PATH="/app/.venv/bin:$PATH" \ PERSONAL_MCP_HOST=0.0.0.0 \ PERSONAL_MCP_PORT=8765 WORKDIR /app RUN groupadd --system --gid 1001 appuser \ && useradd --system --uid 1001 --gid appuser --create-home --home-dir /home/appuser appuser COPY --from=builder --chown=appuser:appuser /app /app EXPOSE 8765 USER appuser CMD ["uvicorn", "personal_mcp.main:app", "--host", "0.0.0.0", "--port", "8765"]