Dockerfile 920 B

12345678910111213141516171819202122232425262728293031323334
  1. FROM golang:alpine AS builder
  2. LABEL stage=gobuilder
  3. ENV CGO_ENABLED 0
  4. ENV GOPROXY https://goproxy.cn,direct
  5. RUN apk update --no-cache && apk add --no-cache tzdata
  6. RUN go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
  7. RUN go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
  8. WORKDIR /build
  9. ADD go.mod .
  10. ADD go.sum .
  11. RUN go mod download
  12. COPY . .
  13. RUN go build -ldflags="-s -w" -o /app/goctl ./goctl.go
  14. FROM golang:alpine
  15. RUN apk update --no-cache && apk add --no-cache protoc
  16. COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
  17. COPY --from=builder /usr/share/zoneinfo/Asia/Shanghai /usr/share/zoneinfo/Asia/Shanghai
  18. COPY --from=builder /go/bin/protoc-gen-go /usr/bin/protoc-gen-go
  19. COPY --from=builder /go/bin/protoc-gen-go-grpc /usr/bin/protoc-gen-go-grpc
  20. ENV TZ Asia/Shanghai
  21. WORKDIR /app
  22. COPY --from=builder /app/goctl /usr/bin/goctl
  23. CMD ["goctl"]