Source
FROM scratch AS build
ARG VERSION
COPY --from=stagex/core-busybox . /
COPY --from=stagex/core-go . /
COPY --from=stagex/core-ca-certificates . /
ADD fetch/kubectl-${VERSION}.tar.gz .
ENV GOPATH=/cache/go
ENV GOCACHE=/cache/
ENV GOWORK=off
ENV GOPROXY=https://proxy.golang.org,direct
ENV GOSUMDB=sum.golang.org
ENV CGO_ENABLED=0
ENV GOHOSTOS=linux
ENV GOHOSTARCH=amd64
ENV GOPATH="/kubernetes-${VERSION}"
ENV GOLDFLAGS="-X 'k8s.io/client-go/pkg/version.gitVersion=${VERSION}' -X 'k8s.io/component-base/version.gitVersion=${VERSION}'"
WORKDIR /kubernetes-${VERSION}
RUN go mod download
RUN --network=none <<-EOF
set -eu
go build -trimpath -v k8s.io/kubernetes/cmd/kubectl
mkdir -p /rootfs/usr/bin/
cp kubectl /rootfs/usr/bin/
EOF
FROM stagex/core-filesystem AS package
COPY --from=build /rootfs// /