43 lines
974 B
Docker
43 lines
974 B
Docker
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 --force && pnpm 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"] |