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