Skip to content

Generating Go Bindings with Docker #180

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions Dockerfile-go
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
FROM golang:1.9.3

RUN apt-get update && apt-get install -y unzip

RUN mkdir -p /csi
WORKDIR /csi

ENV PROTOC_VER 3.5.1
ENV PROTOC_ZIP protoc-$PROTOC_VER-linux-x86_64.zip
ENV PROTOC_URL_PFX https://github.com/google/protobuf/releases/download
ENV PROTOC_URL $PROTOC_URL_PFX/v$PROTOC_VER/$PROTOC_ZIP
ENV PROTOC_BIN bin/protoc
RUN curl -LO $PROTOC_URL && unzip $PROTOC_ZIP && chmod 0755 $PROTOC_BIN

RUN go get -u github.com/golang/protobuf/protoc-gen-go

COPY spec.md /csi

RUN cat spec.md | \
sed -n -e '/```protobuf$/,/```$/ p' | \
sed -e 's@^```.*$@////////@g' > csi.proto

RUN $PROTOC_BIN -I . --go_out=plugins=grpc:. csi.proto

FROM alpine:3.7
RUN mkdir /csi
WORKDIR /csi
COPY --from=0 /csi/csi.pb.go .
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a nit, you can name each stage with FROM golang:1.9.3 AS build and then use COPY --from=build

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @cpuguy83,

Thanks! I've actually done that, but since this was a single stage being referenced I didn't care.

COPY --from=0 /csi/csi.proto .
COPY --from=0 /csi/spec.md .

CMD [ "csi.pb.go" ]
ENTRYPOINT [ "cat" ]