FROM ccr.ccs.tencentyun.com/miaogai/node:alpine AS npmbuilder WORKDIR /app RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories RUN npm config set registry https://registry.npmmirror.com RUN apk update && apk add --no-cache pnpm COPY ui ./ui RUN cd /app/ui && pnpm install && pnpm /app/ui run build FROM ccr.ccs.tencentyun.com/miaogai/golang:alpine AS gobuilder WORKDIR /app RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories RUN apk update && apk add --no-cache git COPY cmd ./cmd COPY go.mod ./go.mod COPY internal ./internal COPY --from=npmbuilder /app/ui/dist ./cmd/shokku/dist # 保留 Go 代理设置 ENV GOPROXY=https://goproxy.cn,direct RUN go get -d -v ./... RUN go install -v ./... RUN GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" -o /go/bin/shokku ./cmd/shokku FROM gcr.io/distroless/static:nonroot COPY --from=gobuilder /go/bin/shokku /go/bin/shokku ENTRYPOINT ["/go/bin/shokku"]