FROM dhi.io/golang:1.26-dev AS builder ARG HELM_VERSION=v3.16.4 ARG TARGETOS=linux ARG TARGETARCH=amd64 WORKDIR /src COPY go.mod . COPY . . RUN --mount=type=cache,target=/root/.cache/go-build \ CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -o /out/kubeviz ./cmd/server FROM alpine:3.20 AS helm ARG HELM_VERSION=v3.16.4 ARG TARGETARCH=amd64 RUN apk add --no-cache ca-certificates wget tar RUN wget -qO /tmp/helm.tgz "https://get.helm.sh/helm-${HELM_VERSION}-linux-${TARGETARCH}.tar.gz" RUN set -eux; \ tar -xzf /tmp/helm.tgz -C /tmp; \ cp /tmp/linux-${TARGETARCH}/helm /out-helm; \ chmod +x /out-helm; \ rm -rf /tmp/helm.tgz /tmp/linux-${TARGETARCH} FROM dhi.io/golang:1.26 WORKDIR /app COPY --from=builder /out/kubeviz /app/kubeviz COPY --from=helm /out-helm /usr/local/bin/helm USER 65532:65532 EXPOSE 8080 ENTRYPOINT ["/app/kubeviz"]