Created
July 11, 2023 10:33
-
-
Save vapopov/1afc6e2076b6b19c72200cc47a5681d0 to your computer and use it in GitHub Desktop.
protoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM gcr.io/bazel-public/bazel as bazel-builder | |
#ENV GO111MODULE on | |
#RUN apk update && apk add git curl build-base libtool | |
ENV PROTOBUF_URL https://github.com/google/protobuf/releases/download/v23.3/protobuf-23.3.tar.gz | |
RUN curl -L -o /tmp/protobuf.tar.gz $PROTOBUF_URL | |
WORKDIR /tmp/ | |
RUN tar xvzf protobuf.tar.gz | |
WORKDIR /tmp/protobuf-23.3 | |
RUN cd /tmp/protobuf-23.3 && \ | |
bazel build :protoc :protobuf | |
RUN mkdir -p /tmp/export/lib64 && \ | |
mkdir -p /tmp/export/usr/local/bin && \ | |
mkdir -p /tmp/export/usr/local/include && \ | |
mkdir -p /tmp/export/lib/x86_64-linux-gnu/ && \ | |
cp /tmp/protobuf-23.3/bazel-bin/protoc /tmp/export/usr/local/bin/ && \ | |
cp -R /tmp/protobuf-23.3/src/* /tmp/export/usr/local/include/ && \ | |
cp /lib64/* /tmp/export/lib64/ && \ | |
cp /lib/x86_64-linux-gnu/ld-2.31.so /tmp/export/lib/x86_64-linux-gnu/ && \ | |
cp /lib/x86_64-linux-gnu/libpthread.so.0 /tmp/export/lib/x86_64-linux-gnu/ && \ | |
cp /lib/x86_64-linux-gnu/libm.so.6 /tmp/export/lib/x86_64-linux-gnu/ && \ | |
cp /lib/x86_64-linux-gnu/libstdc++.so.6 /tmp/export/lib/x86_64-linux-gnu/ && \ | |
cp /lib/x86_64-linux-gnu/libgcc_s.so.1 /tmp/export/lib/x86_64-linux-gnu/ && \ | |
cp /lib/x86_64-linux-gnu/libc.so.6 /tmp/export/lib/x86_64-linux-gnu/ | |
FROM golang:alpine as go-builder | |
# Install protoc-gen-go | |
RUN go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.31.0 && \ | |
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.3.0 && \ | |
go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway@v2.16.0 && \ | |
go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2@v2.16.0 && \ | |
go install github.com/mwitkow/go-proto-validators/protoc-gen-govalidators@v0.3.2 && \ | |
go install github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc@v1.5.1 && \ | |
go install github.com/deepmap/oapi-codegen/cmd/oapi-codegen@v1.12.4 | |
RUN mkdir -p /usr/local/include && \ | |
tree /go/pkg/mod/github.com/grpc-ecosystem/ | |
# cp -R /go/pkg/mod/github.com/grpc-ecosystem/grpc-gateway@v2.16.0/third_party /usr/local/include/ | |
# cp -R /go/pkg/mod/github.com/grpc-ecosystem/grpc-gateway@v1.11.1/protoc-gen-swagger /usr/local/include/ | |
RUN mkdir -p /tmp/export/bin && \ | |
mkdir -p /tmp/export/lib && \ | |
cp /go/bin/* /tmp/export/bin/ | |
FROM alpine:3.18.0 | |
ENV GOPATH /go | |
RUN apk --no-cache add ca-certificates make | |
RUN mkdir /go | |
WORKDIR /go | |
COPY --from=bazel-builder /tmp/export / | |
COPY --from=go-builder /tmp/export /usr | |
COPY --from=go-builder /usr/local/include /usr/local/include | |
CMD ["protoc"] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment