trpc.group/trpc-go/trpc-cmdline@v1.0.9/Dockerfile (about)

     1  FROM golang:alpine AS builder
     2  RUN mkdir /app
     3  ADD . /app/
     4  WORKDIR /app
     5  
     6  ARG GOPROXY
     7  ARG GOSUMDB
     8  
     9  RUN go env -w GOPROXY=${GOPROXY}
    10  RUN go env -w GOSUMDB=${GOSUMDB}
    11  RUN go mod download
    12  RUN go build -o bin/ trpc/trpc.go
    13  RUN chmod +x bin/trpc
    14  
    15  # protoc-gen-go
    16  RUN go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
    17  # mockgen
    18  RUN go install go.uber.org/mock/mockgen@latest
    19  # goimports
    20  RUN go install golang.org/x/tools/cmd/goimports@latest
    21  # protoc-gen-validate
    22  RUN go install github.com/envoyproxy/protoc-gen-validate@latest
    23  RUN go install github.com/envoyproxy/protoc-gen-validate/cmd/protoc-gen-validate-go@latest
    24  
    25  FROM golang:alpine
    26  RUN apk update --no-cache && apk add --no-cache protoc flatc
    27  
    28  ARG GOPROXY
    29  ARG GOSUMDB
    30  
    31  RUN go env -w GOPROXY=${GOPROXY}
    32  RUN go env -w GOSUMDB=${GOSUMDB}
    33  
    34  COPY --from=builder /app/bin/trpc /usr/local/bin/
    35  COPY --from=builder /go/bin /go/bin
    36  WORKDIR /workspace
    37  RUN trpc setup
    38  
    39  ENTRYPOINT ["trpc"]
    40