ARG GOLANG_CI_LINT_VERSION  
  
FROM golang:1.23 as builder  
ENV PATH /go/bin:/usr/local/go/bin:$PATH  
ENV GOPATH /go  
COPY . /go/src/github.com/virtual-kubelet/alibabacloud-eci
WORKDIR /go/src/github.com/virtual-kubelet/alibabacloud-eci
# 设置 Go 国内代理加速
RUN go env -w GOPROXY=https://goproxy.cn,https://mirrors.aliyun.com/goproxy/,direct
RUN make build  
RUN cp bin/virtual-kubelet /usr/bin/virtual-kubelet  
  
FROM golangci/golangci-lint:${GOLANG_CI_LINT_VERSION} as lint
WORKDIR /app
# 设置 Go 国内代理加速
RUN go env -w GOPROXY=https://goproxy.cn,https://mirrors.aliyun.com/goproxy/,direct
COPY go.mod ./
COPY go.sum ./
RUN \  
    --mount=type=cache,target=/root/.cache/go-build \  
    --mount=type=cache,target=/go/pkg/mod \  
    go mod download  
COPY . .  
ARG OUT_FORMAT  
RUN \  
    --mount=type=cache,target=/root/.cache/go-build \  
    --mount=type=cache,target=/go/pkg/mod \  
    --mount=type=cache,target=/root/.cache/golangci-lint \  
    golangci-lint run -v --out-format="${OUT_FORMAT:-colored-line-number}"  
  
FROM alpine:latest  
COPY --from=builder /usr/bin/virtual-kubelet /usr/bin/virtual-kubelet  
COPY --from=builder /etc/ssl/certs/ /etc/ssl/certs  
  
RUN mkdir -p /root/.kube  
  
ENTRYPOINT [ "/usr/bin/virtual-kubelet" ]  
CMD [ "--help" ]