# See services/iam/Dockerfile for the pattern explanation. This image's
# counterpart in docker-compose.yml uses pgvector/pgvector as its
# Postgres image (plain postgres lacks the vector extension).
FROM golang:1.23-bookworm AS build
WORKDIR /src
COPY go.mod go.sum* ./
COPY gen/ gen/
COPY pkg/ pkg/
COPY services/knowledge/ services/knowledge/
RUN go mod tidy
RUN CGO_ENABLED=0 go build -o /out/knowledge-server ./services/knowledge/cmd/server

FROM gcr.io/distroless/static-debian12:nonroot
WORKDIR /app
COPY --from=build /out/knowledge-server ./knowledge-server
COPY --from=build /src/services/knowledge/migrations ./migrations
ENV ENKLY_KNOWLEDGE_GRPC_ADDR=:9005
EXPOSE 9005
ENTRYPOINT ["./knowledge-server"]
