######################################################################################################### # gcc 9 with libssl ######################################################################################################### FROM gcc:9 as gcc_9_libssl USER root RUN apt-get update && \ apt-get install -y --no-install-recommends libssl-dev libboost-dev && \ apt-get autoclean && \ apt-get autoremove && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* ######################################################################################################### # gcc 9 cmake ######################################################################################################### FROM gcc_9_libssl as gcc_9_cmake USER root ENV DOCKER_WORKDIR="/code" RUN mkdir -p ${DOCKER_WORKDIR} WORKDIR ${DOCKER_WORKDIR} RUN git clone https://github.com/Kitware/CMake.git --branch=v3.19.8 && \ cd CMake && \ ./bootstrap --parallel=$(nproc) && \ make -j$(nproc) && \ make install && \ cd .. && \ rm -rf CMake ######################################################################################################### # debug build preparation ######################################################################################################### FROM gcc_9_libssl as build_debug_dependencies USER root ENV DOCKER_WORKDIR="/code" RUN mkdir -p ${DOCKER_WORKDIR} WORKDIR ${DOCKER_WORKDIR} # copy CMake from last stage COPY --from=gcc_9_cmake /usr/local/bin/cmake /usr/local/bin/cmake COPY --from=gcc_9_cmake /usr/local/share/cmake-3.19/Modules /usr/local/share/cmake-3.19/Modules COPY --from=gcc_9_cmake /usr/local/share/cmake-3.19/Templates /usr/local/share/cmake-3.19/Templates COPY ./dependencies ./dependencies COPY ./scripts ./scripts COPY ./CMakeLists.txt . COPY ./src ./src RUN cd scripts && \ chmod +x ./prepare_build.sh && \ ./prepare_build.sh && \ mkdir ../build && \ chmod +x ./build_debug.sh && \ ./build_debug.sh # remove unneccessary stuff RUN rm -rf build/bin/Gradido_LoginServer ######################################################################################################### # debug build ######################################################################################################### FROM gcc_9_libssl as build_debug USER root ENV DOCKER_WORKDIR="/code" RUN mkdir -p ${DOCKER_WORKDIR} WORKDIR ${DOCKER_WORKDIR} # copy CMake from last stage COPY --from=build_debug_dependencies /usr/local/bin/cmake /usr/local/bin/cmake COPY --from=build_debug_dependencies /usr/local/share/cmake-3.19 /usr/local/share/cmake-3.19 COPY --from=build_debug_dependencies /code/build/bin /code/build/bin COPY --from=build_debug_dependencies /code/build/lib /code/build/lib # grpc COPY --from=build_debug_dependencies /code/build/dependencies/grpc/lib /build/dependencies/grpc/lib COPY --from=build_debug_dependencies /code/build/dependencies/grpc/third_party/protobuf/lib /build/dependencies/grpc/third_party/protobuf/lib COPY --from=build_debug_dependencies /code/build/dependencies/grpc/third_party/re2/lib /build/dependencies/grpc/third_party/re2/lib COPY --from=build_debug_dependencies /code/build/dependencies/grpc/third_party/zlib/lib /build/dependencies/grpc/third_party/zlib/lib COPY --from=build_debug_dependencies /code/build/dependencies/grpc/third_party/cares/cares/lib /build/dependencies/grpc/third_party/cares/cares/lib COPY --from=build_debug_dependencies /code/build/dependencies/mariadb-connector-c/libmariadb/lib /build/dependencies/mariadb-connector-c/libmariadb/lib