Files
dokku-ui/Dockerfile
2025-10-16 17:48:16 +08:00

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"]