Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
983a1460d8 | ||
|
|
d805586f15 | ||
|
|
24bc8259bd | ||
|
|
d0ce4a41a3 | ||
|
|
423db22640 |
24
Dockerfile
24
Dockerfile
@@ -1,3 +1,23 @@
|
|||||||
|
FROM vato.ddns.net:8083/debian:buster AS CGRPC_BUILDER
|
||||||
|
|
||||||
|
ARG CGRPC_VERSION=v1.33.2
|
||||||
|
|
||||||
|
RUN apt update -y && apt install git build-essential autoconf libtool pkg-config zlib1g-dev -y
|
||||||
|
|
||||||
|
RUN git clone -b ${CGRPC_VERSION} --recursive https://github.com/grpc/grpc
|
||||||
|
|
||||||
|
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
|
||||||
@@ -21,4 +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=SWIFT_BUILDER /grpc-swift/protoc-gen-* /usr/bin/
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
# Protoc Docker
|
# Protoc Docker
|
||||||
|
|
||||||
Docker container for generating protobuf code. Right now used in CI only for other projects.
|
Docker container for generating protobuf code. Right now used in CI only for other projects.
|
||||||
|
Smallish image size (~220mb); unfortunately the grpc-swift plugins cause it to blow out as they're statically linked (so don't need foundation or the swift dependencies).
|
||||||
|
Not copying them across will save ~100mb in space.
|
||||||
|
|
||||||
## TODOS
|
## TODOS
|
||||||
|
|
||||||
- Build the swift plugins inside this repo, rather than committing the built plugins
|
- Build the grpc-web plugins in the dockerfile, rather than downloading built versions
|
||||||
|
- 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