Build 无法在容器中生成grpc v1.28.1

Build 无法在容器中生成grpc v1.28.1,build,containers,grpc,Build,Containers,Grpc,我在容器中构建grpc时遇到了c++:致命错误。在三台运行Docker Desktop for Windows的不同机器上使用GNU CC 7和10进行了尝试 基本Dockerfile模仿grpc建筑文档: FROM gcc:10.1.0 RUN apt-get update && apt-get upgrade -y && \ apt-get install -y build-essential autoconf libtool pkg-config

我在容器中构建grpc时遇到了c++:致命错误。在三台运行Docker Desktop for Windows的不同机器上使用GNU CC 7和10进行了尝试

基本Dockerfile模仿grpc建筑文档:

FROM gcc:10.1.0

RUN apt-get update && apt-get upgrade -y && \
    apt-get install -y build-essential autoconf libtool pkg-config git curl cmake

RUN cd /tmp && \
    git clone -b $(curl -L https://grpc.io/release) https://github.com/grpc/grpc && \
    cd grpc && \
    git submodule update --init && \
    mkdir -p cmake/build && \
    mkdir -p /opt/grpc && \
    cd cmake/build && \
    cmake -DgRPC_INSTALL=ON -DgRPC_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=/opt/grpc ../.. && \
    make -j && \
    make install
但由于无法在所有系统上成功构建,我得到以下信息:

c++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
make[2]: *** [CMakeFiles/grpc.dir/build.make:2130: CMakeFiles/grpc.dir/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
c++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
make[2]: *** [CMakeFiles/grpc_cronet.dir/build.make:2182: CMakeFiles/grpc_cronet.dir/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc.o] Error 1
c++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
c++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
make[2]: *** Waiting for unfinished jobs....
c++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
make[2]: *** [CMakeFiles/grpc.dir/build.make:2182: CMakeFiles/grpc.dir/src/core/ext/transport/chttp2/transport/chttp2_transport.cc.o] Error 1
make[2]: *** [CMakeFiles/grpc_cronet.dir/build.make:2598: CMakeFiles/grpc_cronet.dir/src/core/ext/filters/client_channel/client_channel.cc.o] Error 1
c++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
make[2]: *** [CMakeFiles/grpc_unsecure.dir/build.make:2208: CMakeFiles/grpc_unsecure.dir/src/core/ext/transport/chttp2/transport/chttp2_transport.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [CMakeFiles/grpc_cronet.dir/build.make:2819: CMakeFiles/grpc_cronet.dir/src/core/ext/filters/client_channel/resolving_lb_policy.cc.o] Error 1
c++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
make[2]: *** [CMakeFiles/grpc.dir/build.make:2520: CMakeFiles/grpc.dir/src/core/lib/security/context/security_context.cc.o] Error 1
c++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
[ 89%] Building C object CMakeFiles/grpc.dir/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c.o
make[2]: *** [CMakeFiles/grpc.dir/build.make:2546: CMakeFiles/grpc.dir/src/core/lib/security/credentials/composite/composite_credentials.cc.o] Error 1
c++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
c++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
make[2]: *** [CMakeFiles/grpc_unsecure.dir/build.make:2858: CMakeFiles/grpc_unsecure.dir/src/core/ext/filters/client_channel/resolving_lb_policy.cc.o] Error 1
make[2]: *** [CMakeFiles/grpc_cronet.dir/build.make:2234: CMakeFiles/grpc_cronet.dir/src/core/ext/transport/chttp2/transport/chttp2_transport.cc.o] Error 1
...

终止发生在构建的不同阶段。知道什么是终止编译器吗?

啊哈,失败是由内存限制引起的;没有参数的make-j对于Windows来说太激进了。将其约束为给定值可以解决问题