######################################################################################################### # debug build preparation ######################################################################################################### From conanio/gcc9 as build_debug_preparation USER root ENV DOCKER_WORKDIR="/code" RUN mkdir -p ${DOCKER_WORKDIR} WORKDIR ${DOCKER_WORKDIR} COPY ./dependencies ./dependencies COPY ./conanfile.txt ./conanfile.txt COPY ./cmake ./cmake # install gcovr because it is needed for coverage report RUN apt-get update && \ apt-get install -y --no-install-recommends gcovr && \ apt-get autoclean && \ apt-get autoremove && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* RUN cd dependencies/mariadb-connector-c && \ mkdir build && \ cd build && \ cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_SSL=OFF .. RUN mkdir build && \ cd build && \ conan install .. --build=missing -s build_type=Debug ######################################################################################################### # debug build proto and grpc ######################################################################################################### From build_debug_preparation as proto_grpc ENV DOCKER_WORKDIR="/code" WORKDIR ${DOCKER_WORKDIR} COPY ./CMakeLists.txt . RUN cd build && \ cmake -DCMAKE_BUILD_TYPE=Debug .. && \ make -j${CPU_COUNT} protoc grpc_cpp_plugin ######################################################################################################### # parse proto and gettext ######################################################################################################### From proto_grpc as proto_parse ENV DOCKER_WORKDIR="/code" WORKDIR ${DOCKER_WORKDIR} RUN mkdir src && \ cd src && \ mkdir cpp COPY ./src/proto ./src/proto COPY ./unix_parse_proto.sh . RUN chmod +x unix_parse_proto.sh && \ ./unix_parse_proto.sh