Compile grpc-swift plugins in Dockerfile
This commit is contained in:
14
Dockerfile
14
Dockerfile
@@ -8,6 +8,16 @@ RUN git clone -b ${CGRPC_VERSION} --recursive https://github.com/grpc/grpc
|
|||||||
|
|
||||||
RUN cd grpc && make plugins -j 12
|
RUN cd grpc && make plugins -j 12
|
||||||
|
|
||||||
|
FROM vato.ddns.net:8083/swift AS SWIFT_BUILDER
|
||||||
|
|
||||||
|
ARG GRPC_SWIFT_VERSION=1.0.0-alpha.21
|
||||||
|
|
||||||
|
RUN git clone -b ${GRPC_SWIFT_VERSION} https://github.com/grpc/grpc-swift.git grpc-swift
|
||||||
|
|
||||||
|
COPY ./build_grpc_swift_plugins_static.sh grpc-swift/
|
||||||
|
|
||||||
|
RUN cd grpc-swift && chmod +x build_grpc_swift_plugins_static.sh && ./build_grpc_swift_plugins_static.sh && rm -rf .build
|
||||||
|
|
||||||
FROM vato.ddns.net:8083/alpine
|
FROM vato.ddns.net:8083/alpine
|
||||||
|
|
||||||
ARG ARCH=x86_64
|
ARG ARCH=x86_64
|
||||||
@@ -31,8 +41,6 @@ RUN rm protoc-gen-grpc-web-*.sha256 && \
|
|||||||
mv protoc-gen-grpc-web-* /usr/bin/protoc-gen-grpc-web && \
|
mv protoc-gen-grpc-web-* /usr/bin/protoc-gen-grpc-web && \
|
||||||
chmod +x /usr/bin/protoc-gen-grpc-web
|
chmod +x /usr/bin/protoc-gen-grpc-web
|
||||||
|
|
||||||
COPY ./protoc-gen-* /usr/bin/
|
|
||||||
|
|
||||||
COPY --from=CGRPC_BUILDER /grpc/bins/opt/grpc_python_plugin /usr/bin/protoc-gen-grpc-python
|
COPY --from=CGRPC_BUILDER /grpc/bins/opt/grpc_python_plugin /usr/bin/protoc-gen-grpc-python
|
||||||
|
|
||||||
ENTRYPOINT ["protoc"]
|
COPY --from=SWIFT_BUILDER /grpc-swift/protoc-gen-* /usr/bin/
|
||||||
|
|||||||
@@ -6,6 +6,5 @@ Not copying them across will save ~100mb in space.
|
|||||||
|
|
||||||
## TODOS
|
## TODOS
|
||||||
|
|
||||||
- Build the swift plugins inside the dockerfile, rather than committing the built plugins
|
|
||||||
- Build the grpc-web plugins in the dockerfile, rather than downloading built versions
|
- Build the grpc-web plugins in the dockerfile, rather than downloading built versions
|
||||||
- Use CMake/Bazel for building the grpc plugins - [CMake dockerfile](https://hub.docker.com/r/kitware/cmake)
|
- Use CMake/Bazel for building the c grpc plugins - [CMake dockerfile](https://hub.docker.com/r/kitware/cmake)
|
||||||
10
build_grpc_swift_plugins_static.sh
Normal file
10
build_grpc_swift_plugins_static.sh
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
SWIFT_BUILD_PATH=./.build
|
||||||
|
|
||||||
|
PROTOC_GEN_SWIFT=${SWIFT_BUILD_PATH}/release/protoc-gen-swift
|
||||||
|
PROTOC_GEN_GRPC_SWIFT=${SWIFT_BUILD_PATH}/release/protoc-gen-grpc-swift
|
||||||
|
|
||||||
|
MAIN_SCRIPT="swift build --configuration=release --build-path=${SWIFT_BUILD_PATH} -Xswiftc -static-executable"
|
||||||
|
${MAIN_SCRIPT} --product protoc-gen-swift
|
||||||
|
${MAIN_SCRIPT} --product protoc-gen-grpc-swift
|
||||||
|
cp ${SWIFT_BUILD_PATH}/release/protoc-gen-swift .
|
||||||
|
cp ${SWIFT_BUILD_PATH}/release/protoc-gen-grpc-swift .
|
||||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user