From 51692acfb8e6846c2307f594f8935dcf729ef0d5 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Tue, 15 Jun 2021 12:55:55 +0200 Subject: [PATCH] reorganisiere Dockerfiles --- login_server/Dockerfile | 81 ------------------- .../alpine/Dockerfile.debug} | 0 .../Dockerfile.dependencies} | 11 +++ .../Dockerfiles/ubuntu/Dockerfile.debug | 39 +++++++++ .../{ => ubuntu}/Dockerfile.dependencies | 9 +++ .../Dockerfiles/ubuntu/Dockerfile.release | 0 .../Dockerfiles/ubuntu/Dockerfile.test | 58 +++++++++++++ 7 files changed, 117 insertions(+), 81 deletions(-) rename login_server/{Dockerfile.alpine-debug => Dockerfiles/alpine/Dockerfile.debug} (100%) rename login_server/Dockerfiles/{Dockerfile.dependencies-alpine => alpine/Dockerfile.dependencies} (86%) create mode 100644 login_server/Dockerfiles/ubuntu/Dockerfile.debug rename login_server/Dockerfiles/{ => ubuntu}/Dockerfile.dependencies (88%) create mode 100644 login_server/Dockerfiles/ubuntu/Dockerfile.release create mode 100644 login_server/Dockerfiles/ubuntu/Dockerfile.test diff --git a/login_server/Dockerfile b/login_server/Dockerfile index 98e576da2..313cdeca6 100644 --- a/login_server/Dockerfile +++ b/login_server/Dockerfile @@ -1,85 +1,4 @@ -######################################################################################################### -# Prepare debug -######################################################################################################### -FROM gradido/login_dependencies:gcc9-debug-3 as prepare_debug - -ENV DOCKER_WORKDIR="/code" -WORKDIR ${DOCKER_WORKDIR} - -RUN echo '/usr/local/lib' >> /etc/ld.so.conf && ldconfig - -COPY ./CMakeLists.txt.lib ./CMakeLists.txt -RUN ln -s /usr/local/googletest ./googletest -COPY ./src ./src -COPY ./cmake/CodeCoverage.cmake ./cmake/CodeCoverage.cmake -COPY ./dependencies/cmake-modules ./dependencies/cmake-modules -COPY ./dependencies/spirit-po ./dependencies/spirit-po -COPY ./dependencies/tinf ./dependencies/tinf -COPY ./scripts ./scripts - - -######################################################################################################### -# Install Coverage tool -######################################################################################################### -FROM prepare_debug as coverage - - -RUN apt-get update && \ - apt-get install -y --no-install-recommends python3-pip && \ - apt-get autoclean && \ - apt-get autoremove && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* - -RUN pip3 install gcovr setuptools wheel && \ - pip3 install fastcov - - -######################################################################################################### -# Build test -######################################################################################################### -FROM coverage as test - -ENV DOCKER_WORKDIR="/code" -WORKDIR ${DOCKER_WORKDIR} - - -RUN if [ ! -d "./build_cov" ] ; then mkdir build_cov; fi - -RUN cd build_cov && \ - cmake -DCMAKE_BUILD_TYPE=Debug -DCOLLECT_COVERAGE_DATA=ON -DCOVERAGE_TOOL=fastcov .. && \ - make -j$(nproc) Gradido_LoginServer_Test - -#RUN chmod +x build_cov/bin/Gradido_LoginServer_Test -#CMD gdb -ex run ./build_cov/bin/Gradido_LoginServer_Test -#CMD ./build_cov/bin/Gradido_LoginServer_Test - -#ENTRYPOINT make -C build_cov coverage -CMD cd build_cov && make coverage && \ - if [ ! -d "./coverage" ] ; then mkdir coverage; fi && \ - cp coverage.info ./coverage/ - -######################################################################################################### -# Build debug -######################################################################################################### -FROM prepare_debug as debug - -ENV DOCKER_WORKDIR="/code" -WORKDIR ${DOCKER_WORKDIR} - -RUN mkdir build && \ - cd build && \ - cmake -DCMAKE_BUILD_TYPE=Debug .. && \ - make -j$(nproc) Gradido_LoginServer - -RUN cd scripts && \ - chmod +x compile_pot.sh && \ - ./compile_pot.sh - -RUN chmod +x build/bin/Gradido_LoginServer -ENTRYPOINT ["build/bin/Gradido_LoginServer"] - ######################################################################################################### # Build release ######################################################################################################### diff --git a/login_server/Dockerfile.alpine-debug b/login_server/Dockerfiles/alpine/Dockerfile.debug similarity index 100% rename from login_server/Dockerfile.alpine-debug rename to login_server/Dockerfiles/alpine/Dockerfile.debug diff --git a/login_server/Dockerfiles/Dockerfile.dependencies-alpine b/login_server/Dockerfiles/alpine/Dockerfile.dependencies similarity index 86% rename from login_server/Dockerfiles/Dockerfile.dependencies-alpine rename to login_server/Dockerfiles/alpine/Dockerfile.dependencies index c388d528c..098c7a8d7 100644 --- a/login_server/Dockerfiles/Dockerfile.dependencies-alpine +++ b/login_server/Dockerfiles/alpine/Dockerfile.dependencies @@ -1,3 +1,14 @@ +# Login-Server Build dependencies for alpine +# Uploaded to hub.docker.com with the tag: +# gradido/login_dependencies:alpine-debug-3 for debug build +# and +# gradido/login_dependencies:alpine-release-3 for release build +# Update tag when dependencies are added or removed + +# Control Build Type with ARG BUILD_TYPE +# Valid values do you find here: https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html +# Default is set to Debug + ##### BUILD-ENV ##### FROM alpine:3.13.5 as alpine-build diff --git a/login_server/Dockerfiles/ubuntu/Dockerfile.debug b/login_server/Dockerfiles/ubuntu/Dockerfile.debug new file mode 100644 index 000000000..79ed8d802 --- /dev/null +++ b/login_server/Dockerfiles/ubuntu/Dockerfile.debug @@ -0,0 +1,39 @@ + +######################################################################################################### +# Prepare debug +######################################################################################################### +FROM gradido/login_dependencies:gcc9-debug-3 as prepare_debug + +ENV DOCKER_WORKDIR="/code" +WORKDIR ${DOCKER_WORKDIR} + +RUN echo '/usr/local/lib' >> /etc/ld.so.conf && ldconfig + +COPY ./CMakeLists.txt.lib ./CMakeLists.txt +RUN ln -s /usr/local/googletest ./googletest +COPY ./src ./src +COPY ./cmake/CodeCoverage.cmake ./cmake/CodeCoverage.cmake +COPY ./dependencies/cmake-modules ./dependencies/cmake-modules +COPY ./dependencies/spirit-po ./dependencies/spirit-po +COPY ./dependencies/tinf ./dependencies/tinf +COPY ./scripts ./scripts + + +######################################################################################################### +# Build debug +######################################################################################################### +FROM prepare_debug as debug + +ENV DOCKER_WORKDIR="/code" +WORKDIR ${DOCKER_WORKDIR} + +RUN mkdir build && \ + cd build && \ + cmake -DCMAKE_BUILD_TYPE=Debug .. + +RUN cd scripts && \ + chmod +x compile_pot.sh && \ + ./compile_pot.sh + +CMD cd build && cmake .. && make -j$(nproc) Gradido_LoginServer && ./bin/Gradido_LoginServer + diff --git a/login_server/Dockerfiles/Dockerfile.dependencies b/login_server/Dockerfiles/ubuntu/Dockerfile.dependencies similarity index 88% rename from login_server/Dockerfiles/Dockerfile.dependencies rename to login_server/Dockerfiles/ubuntu/Dockerfile.dependencies index bc2cd1fd2..883274628 100644 --- a/login_server/Dockerfiles/Dockerfile.dependencies +++ b/login_server/Dockerfiles/ubuntu/Dockerfile.dependencies @@ -1,3 +1,12 @@ +# Login-Server Build dependencies for ubuntu +# Uploaded to hub.docker.com with the tag: +# gradido/login_dependencies:gcc9-debug-3 for debug build +# Update tag when dependencies are added or removed + +# Control Build Type with ARG BUILD_TYPE +# Valid values do you find here: https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html +# Default is set to Debug + ##### BUILD-ENV ##### FROM gcc:9 as gcc9_build diff --git a/login_server/Dockerfiles/ubuntu/Dockerfile.release b/login_server/Dockerfiles/ubuntu/Dockerfile.release new file mode 100644 index 000000000..e69de29bb diff --git a/login_server/Dockerfiles/ubuntu/Dockerfile.test b/login_server/Dockerfiles/ubuntu/Dockerfile.test new file mode 100644 index 000000000..59caaf3c5 --- /dev/null +++ b/login_server/Dockerfiles/ubuntu/Dockerfile.test @@ -0,0 +1,58 @@ + +######################################################################################################### +# Prepare debug +######################################################################################################### +FROM gradido/login_dependencies:gcc9-debug-3 as prepare_debug + +ENV DOCKER_WORKDIR="/code" +WORKDIR ${DOCKER_WORKDIR} + +RUN echo '/usr/local/lib' >> /etc/ld.so.conf && ldconfig + +COPY ./CMakeLists.txt.lib ./CMakeLists.txt +RUN ln -s /usr/local/googletest ./googletest +COPY ./src ./src +COPY ./cmake/CodeCoverage.cmake ./cmake/CodeCoverage.cmake +COPY ./dependencies/cmake-modules ./dependencies/cmake-modules +COPY ./dependencies/spirit-po ./dependencies/spirit-po +COPY ./dependencies/tinf ./dependencies/tinf +COPY ./scripts ./scripts + + +######################################################################################################### +# Install Coverage tool +######################################################################################################### +FROM prepare_debug as coverage + + +RUN apt-get update && \ + apt-get install -y --no-install-recommends python3-pip && \ + apt-get autoclean && \ + apt-get autoremove && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* +# fastcov need gcovr to work +RUN pip3 install gcovr setuptools wheel && \ + pip3 install fastcov + + +######################################################################################################### +# Build test +######################################################################################################### +FROM coverage as test + +ENV DOCKER_WORKDIR="/code" +WORKDIR ${DOCKER_WORKDIR} + + +RUN if [ ! -d "./build_cov" ] ; then mkdir build_cov; fi + +RUN cd build_cov && \ + cmake -DCMAKE_BUILD_TYPE=Debug -DCOLLECT_COVERAGE_DATA=ON -DCOVERAGE_TOOL=fastcov .. && \ + make -j$(nproc) Gradido_LoginServer_Test + +#ENTRYPOINT make -C build_cov coverage +CMD cd build_cov && make coverage && \ + if [ ! -d "./coverage" ] ; then mkdir coverage; fi && \ + cp coverage.info ./coverage/ + \ No newline at end of file