# syntax=docker/dockerfile:1 FROM node:22-bookworm-slim AS web-build WORKDIR /src/web COPY web/package*.json ./ RUN npm ci --no-audit --no-fund COPY web/ ./ RUN npm run build FROM golang:1.23-bookworm AS go-build WORKDIR /src COPY go.mod ./ COPY . ./ COPY --from=web-build /src/web/dist ./web/dist RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \ go build -trimpath -ldflags="-s -w" \ -o /out/wxagent-control-plane ./cmd/wxagent-control-plane RUN mkdir /runtime-data FROM gcr.io/distroless/static-debian12:nonroot WORKDIR /app COPY --from=go-build /out/wxagent-control-plane /app/wxagent-control-plane COPY --from=go-build --chown=65532:65532 /runtime-data /data ENV WXAGENT_CONTROL_PLANE_ADDR=0.0.0.0:8090 \ WXAGENT_CONTROL_PLANE_DATA=/data/control-plane-data.json VOLUME ["/data"] EXPOSE 8090 ENTRYPOINT ["/app/wxagent-control-plane"]