leankg 0.20.2

Lightweight Knowledge Graph for AI-Assisted Development
Documentation
# Temporary helper: build freepeak/leankg:embeddings with the embeddings feature ON.
# Use: `docker build -f Dockerfile.embed -t freepeak/leankg:embeddings .`
# This is a build-only artifact; not part of the prod image.
#
# Why a separate file: the published Hub image is built without embeddings
# to stay slim. We need --features=embeddings for cold embed on be.
FROM rust:1-bookworm AS builder
WORKDIR /app

ENV CARGO_BUILD_JOBS=1 \
    CARGO_PROFILE_RELEASE_LTO=false \
    CARGO_INCREMENTAL=0 \
    RUSTFLAGS="-C debuginfo=0" \
    CARGO_TERM_COLOR=always

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        clang \
        libclang-dev \
        pkg-config \
        libssl-dev \
        ca-certificates \
    && rm -rf /var/lib/apt/lists/*

COPY . .

RUN cargo build --release --features=embeddings \
    && strip target/release/leankg \
    && cp target/release/leankg /usr/local/bin/leankg

FROM debian:bookworm-slim AS runtime
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY --from=builder /usr/local/bin/leankg /usr/local/bin/leankg

ENV LEANKG_PG_URL="" \
    MCP_HTTP_PORT=9699 \
    LEANKG_EMBED_AUTO_ARM=0
EXPOSE 9699

HEALTHCHECK --interval=30s --timeout=5s --start-period=15s --retries=3 \
    CMD curl -fsS "http://127.0.0.1:${MCP_HTTP_PORT}/health" || exit 1

CMD ["leankg", "mcp-http"]