FROM golang:1.23-alpine AS build WORKDIR /src COPY go.mod ./ COPY cmd ./cmd COPY internal ./internal RUN CGO_ENABLED=0 GOOS=linux go build -trimpath -ldflags="-s -w" -o /out/neural-brain ./cmd/brain FROM alpine:3.21 RUN addgroup -S brain && adduser -S -G brain brain WORKDIR /app COPY --from=build /out/neural-brain /usr/local/bin/neural-brain RUN mkdir -p /app/data /sources/knowledge /sources/staging /sources/agent-data && chown -R brain:brain /app /sources USER brain EXPOSE 8090 ENTRYPOINT ["neural-brain"]