From aa3c28763f67f621e78f5f2de02a456d42c90a35 Mon Sep 17 00:00:00 2001 From: Dario via Pythagoras Date: Thu, 25 Mar 2021 07:49:06 +0100 Subject: [PATCH 1/4] remove protobuf tests, shorten cpu core getter --- login_server/Dockerfile.debug | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/login_server/Dockerfile.debug b/login_server/Dockerfile.debug index 0c7c741d5..e5603bbc1 100644 --- a/login_server/Dockerfile.debug +++ b/login_server/Dockerfile.debug @@ -6,10 +6,10 @@ RUN git clone --recurse-submodules https://github.com/protocolbuffers/protobuf.g WORKDIR /protobuf RUN git checkout v3.9.1 -RUN ./autogen.sh +RUN ./autogen.sh RUN ./configure --enable-static=yes -RUN make -j$(grep processor /proc/cpuinfo | wc -l) -RUN make check +RUN make -j$(nproc) +#RUN make check CMD ["./protobuf"] @@ -43,7 +43,7 @@ RUN cd dependencies/iroha-ed25519 && \ mkdir build && \ cd build && \ cmake .. -DCMAKE_BUILD_TYPE=Debug -DEDIMPL=ref10 -DHASH=sha2_sphlib -DRANDOM=bcryptgen -DBUILD=STATIC && \ - make -j$(grep processor /proc/cpuinfo | wc -l) + make -j$(nproc) RUN cd dependencies/mariadb-connector-c && \ mkdir build && \ @@ -98,7 +98,7 @@ RUN ./compile_pot.sh RUN ./compile_proto.sh RUN cd build && \ cmake -DCMAKE_BUILD_TYPE=Debug .. && \ - make -j$(grep processor /proc/cpuinfo | wc -l) + make -j$(nproc) ######################################################################################################### @@ -129,4 +129,4 @@ EXPOSE 1201 #RUN chmod +x ./start_after_mysql.sh #ENTRYPOINT ["/usr/bin/Gradido_LoginServer"] #CMD gdb -ex=r Gradido_LoginServer -CMD Gradido_LoginServer \ No newline at end of file +CMD Gradido_LoginServer From be549b7501100933d8e0de53058bdaad8fabbd29 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Mon, 29 Mar 2021 15:30:03 +0200 Subject: [PATCH 2/4] create docker container for build and offer protoc v3.9.1 to prevent rebuilding protoc every time --- login_server/Dockerfile.debug | 13 ---------- login_server/Dockerfiles/Dockefile.protoc | 30 +++++++++++++++++++++++ 2 files changed, 30 insertions(+), 13 deletions(-) create mode 100644 login_server/Dockerfiles/Dockefile.protoc diff --git a/login_server/Dockerfile.debug b/login_server/Dockerfile.debug index e5603bbc1..15d78b0dd 100644 --- a/login_server/Dockerfile.debug +++ b/login_server/Dockerfile.debug @@ -1,17 +1,4 @@ -######################################################################################################### -# Build protoc -######################################################################################################### -FROM gcc:7.5 as protoc_build -RUN git clone --recurse-submodules https://github.com/protocolbuffers/protobuf.git -WORKDIR /protobuf -RUN git checkout v3.9.1 -RUN ./autogen.sh -RUN ./configure --enable-static=yes -RUN make -j$(nproc) -#RUN make check - -CMD ["./protobuf"] ######################################################################################################### # debug build preparation diff --git a/login_server/Dockerfiles/Dockefile.protoc b/login_server/Dockerfiles/Dockefile.protoc new file mode 100644 index 000000000..92cf80c2a --- /dev/null +++ b/login_server/Dockerfiles/Dockefile.protoc @@ -0,0 +1,30 @@ +######################################################################################################### +# Build protoc +######################################################################################################### +FROM gcc:7.5 as protoc3.9.1_build +RUN git clone --recurse-submodules https://github.com/protocolbuffers/protobuf.git +WORKDIR /protobuf + +RUN git checkout v3.9.1 +RUN ./autogen.sh +RUN ./configure --enable-static=yes +RUN make -j$(nproc) +#RUN make check + +CMD ["./protobuf"] + +######################################################################################################### +# Store protoc +######################################################################################################### +FROM alpine:3.10 as protoc + +COPY --from=protoc3.9.1_build /protobuf/src/.libs/protoc /usr/bin/ +COPY --from=protoc3.9.1_build /protobuf/src/.libs/libprotobuf.so.20.0.1 /usr/lib/libprotobuf.so.20 +COPY --from=protoc3.9.1_build /protobuf/src/.libs/libprotoc.so.20.0.1 /usr/lib/libprotoc.so.20 +COPY --from=protoc3.9.1_build /protobuf/src/google/protobuf/*.proto /usr/include/google/protobuf/ +COPY --from=protoc3.9.1_build /protobuf/src/google/protobuf/*.h /usr/include/google/protobuf/ + +## build with: +# docker build . -f Dockefile.protoc -t unicorny/protoc:3.9.1 +## upload (login to docker hub on shell before): +# docker push unicorny/protoc:3.9.1 \ No newline at end of file From 1f002f4ed0b12d4b2bf63efceabe546d0c5b58ea Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Mon, 29 Mar 2021 16:10:36 +0200 Subject: [PATCH 3/4] update debug docker to use dependencies container pushed to docker hub --- login_server/Dockerfile | 28 +-- login_server/Dockerfile.debug | 189 +++++++----------- .../Dockerfiles/Dockerfile.dependencies | 46 +++++ .../{Dockefile.protoc => Dockerfile.protoc} | 4 +- 4 files changed, 124 insertions(+), 143 deletions(-) create mode 100644 login_server/Dockerfiles/Dockerfile.dependencies rename login_server/Dockerfiles/{Dockefile.protoc => Dockerfile.protoc} (92%) diff --git a/login_server/Dockerfile b/login_server/Dockerfile index 39d1eff4a..7d51a7ca4 100644 --- a/login_server/Dockerfile +++ b/login_server/Dockerfile @@ -1,18 +1,3 @@ -######################################################################################################### -# Build protoc -######################################################################################################### -FROM gcc:7.5 as protoc_build -RUN git clone --recurse-submodules https://github.com/protocolbuffers/protobuf.git -WORKDIR /protobuf - -RUN git checkout v3.9.1 -RUN ./autogen.sh -RUN ./configure --enable-static=yes -RUN make -j$(grep processor /proc/cpuinfo | wc -l) -RUN make check - -CMD ["./protobuf"] - ######################################################################################################### # Build release ######################################################################################################### @@ -22,11 +7,10 @@ ENV DOCKER_WORKDIR="/code" USER root -COPY --from=protoc_build /protobuf/src/.libs/protoc /usr/bin/ -COPY --from=protoc_build /protobuf/src/.libs/libprotobuf.so.20.0.1 /usr/lib/libprotobuf.so.20 -COPY --from=protoc_build /protobuf/src/.libs/libprotoc.so.20.0.1 /usr/lib/libprotoc.so.20 -COPY --from=protoc_build /protobuf/src/google/protobuf/*.proto /usr/include/google/protobuf/ -COPY --from=protoc_build /protobuf/src/google/protobuf/*.h /usr/include/google/protobuf/ +COPY --from=unicorny/protoc:3.9.1 /usr/bin/protoc /usr/bin/ +COPY --from=unicorny/protoc:3.9.1 /usr/lib/libprotobuf.so.20 /usr/lib/libprotobuf.so.20 +COPY --from=unicorny/protoc:3.9.1 /usr/lib/libprotoc.so.20 /usr/lib/libprotoc.so.20 +COPY --from=unicorny/protoc:3.9.1 /usr/include/google/protobuf/* /usr/include/google/protobuf/ RUN mkdir -p ${DOCKER_WORKDIR} @@ -40,7 +24,7 @@ RUN cd dependencies/iroha-ed25519 && \ mkdir build && \ cd build && \ cmake .. -DEDIMPL=ref10 -DHASH=sha2_sphlib -DRANDOM=bcryptgen -DBUILD=STATIC && \ - make -j$(grep processor /proc/cpuinfo | wc -l) + make -j$(nproc) RUN cd dependencies/mariadb-connector-c && \ mkdir build && \ @@ -56,7 +40,7 @@ RUN mkdir build && \ cd build && \ conan install .. --build=missing && \ cmake .. && \ - make -j$(grep processor /proc/cpuinfo | wc -l) Gradido_LoginServer + make -j$(nproc) Gradido_LoginServer CMD ["./code"] diff --git a/login_server/Dockerfile.debug b/login_server/Dockerfile.debug index 15d78b0dd..6c72821fa 100644 --- a/login_server/Dockerfile.debug +++ b/login_server/Dockerfile.debug @@ -1,119 +1,70 @@ - - -######################################################################################################### -# debug build preparation -######################################################################################################### - -From conanio/gcc7 as debug_preparation - -ENV DOCKER_WORKDIR="/code" - -USER root - -COPY --from=protoc_build /protobuf/src/.libs/protoc /usr/bin/ -COPY --from=protoc_build /protobuf/src/.libs/libprotobuf.so.20.0.1 /usr/lib/libprotobuf.so.20 -COPY --from=protoc_build /protobuf/src/.libs/libprotoc.so.20.0.1 /usr/lib/libprotoc.so.20 -COPY --from=protoc_build /protobuf/src/google/protobuf/*.proto /usr/include/google/protobuf/ -COPY --from=protoc_build /protobuf/src/google/protobuf/*.h /usr/include/google/protobuf/ - -#VOLUME /root/.conan - -RUN mkdir -p ${DOCKER_WORKDIR} -WORKDIR ${DOCKER_WORKDIR} - -COPY ./dependencies ./dependencies -COPY ./conanfile.txt ./conanfile.txt - -RUN ls -la -RUN cd dependencies/iroha-ed25519 && \ - ls -la && \ - mkdir build && \ - cd build && \ - cmake .. -DCMAKE_BUILD_TYPE=Debug -DEDIMPL=ref10 -DHASH=sha2_sphlib -DRANDOM=bcryptgen -DBUILD=STATIC && \ - make -j$(nproc) - -RUN cd dependencies/mariadb-connector-c && \ - mkdir build && \ - cd build && \ - cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_SSL=OFF .. - - -#RUN chmod +x compile_proto.sh -#RUN chmod +x compile_pot.sh -#RUN ls -la -#RUN ./compile_pot.sh -#RUN ./compile_proto.sh -RUN mkdir build && \ - cd build && \ - conan install .. --build=missing -s build_type=Debug - - - -######################################################################################################### -# Build debug -######################################################################################################### -From debug_preparation as debug - -ENV DOCKER_WORKDIR="/code" - -USER root -#VOLUME /root/.conan - -RUN apt-get update && \ - apt-get install -y --no-install-recommends gdb && \ - apt-get autoclean && \ - apt-get autoremove && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* - -#COPY --from=protoc_build /protobuf/src/.libs/libprotobuf.so.20.0.1 /usr/lib/libprotobuf.so.20 -#COPY --from=protoc_build /protobuf/src/google/protobuf/*.h /usr/include/google/protobuf/ - - -#COPY --from=debug_preparation /code /code -#COPY --from=debug_preparation /home/conan /home/conan -#RUN ls -la /home/conan/.conan -COPY . . -WORKDIR ${DOCKER_WORKDIR} - -#RUN ls -la -#RUN cat build/conanbuildinfo.cmake -RUN chmod +x compile_proto.sh -RUN chmod +x compile_pot.sh -#RUN ls -la -RUN ./compile_pot.sh -RUN ./compile_proto.sh -RUN cd build && \ - cmake -DCMAKE_BUILD_TYPE=Debug .. && \ - make -j$(nproc) - - -######################################################################################################### -# run debug -######################################################################################################### -FROM ubuntu:latest as login_server_debug - -WORKDIR "/usr/bin" - -#RUN apt-get update && \ -# apt-get install -y --no-install-recommends gdb && \ -# apt-get autoclean && \ -# apt-get autoremove && \ -# apt-get clean && \ -# rm -rf /var/lib/apt/lists/* - -VOLUME /var/log/grd_login - -COPY --from=debug /code/build/bin/Gradido_LoginServer /usr/bin/ -COPY --from=debug /code/build/lib/libmariadb.so.3 /usr/lib/ -#COPY start_after_mysql.sh . -RUN chmod +x /usr/bin/Gradido_LoginServer -EXPOSE 1200 -EXPOSE 1201 -#ENTRYPOINT ["/usr/bin/Gradido_LoginServer"] -# Wait on mariadb to started -#CMD ["sleep 5", "/usr/bin/Gradido_LoginServer"] -#RUN chmod +x ./start_after_mysql.sh -#ENTRYPOINT ["/usr/bin/Gradido_LoginServer"] -#CMD gdb -ex=r Gradido_LoginServer -CMD Gradido_LoginServer + + +######################################################################################################### +# Build debug +######################################################################################################### +From gradido/login_dependencies:stage1 as debug + +ENV DOCKER_WORKDIR="/code" + +USER root +#VOLUME /root/.conan + +#RUN apt-get update && \ + # apt-get install -y --no-install-recommends gdb && \ +# apt-get autoclean && \ +# apt-get autoremove && \ + # apt-get clean && \ + # rm -rf /var/lib/apt/lists/* + +#COPY --from=protoc_build /protobuf/src/.libs/libprotobuf.so.20.0.1 /usr/lib/libprotobuf.so.20 +#COPY --from=protoc_build /protobuf/src/google/protobuf/*.h /usr/include/google/protobuf/ + + +#COPY --from=debug_preparation /code /code +#COPY --from=debug_preparation /home/conan /home/conan +#RUN ls -la /home/conan/.conan +COPY . . +WORKDIR ${DOCKER_WORKDIR} + +#RUN ls -la +#RUN cat build/conanbuildinfo.cmake +RUN chmod +x compile_proto.sh +RUN chmod +x compile_pot.sh +#RUN ls -la +RUN ./compile_pot.sh +RUN ./compile_proto.sh +RUN cd build && \ + cmake -DCMAKE_BUILD_TYPE=Debug .. && \ + make -j$(nproc) Gradido_LoginServer + + +######################################################################################################### +# run debug +######################################################################################################### +FROM ubuntu:latest as login_server_debug + +WORKDIR "/usr/bin" + +#RUN apt-get update && \ +# apt-get install -y --no-install-recommends gdb && \ +# apt-get autoclean && \ +# apt-get autoremove && \ +# apt-get clean && \ +# rm -rf /var/lib/apt/lists/* + +VOLUME /var/log/grd_login + +COPY --from=debug /code/build/bin/Gradido_LoginServer /usr/bin/ +COPY --from=debug /code/build/lib/libmariadb.so.3 /usr/lib/ +#COPY start_after_mysql.sh . +RUN chmod +x /usr/bin/Gradido_LoginServer +EXPOSE 1200 +EXPOSE 1201 +#ENTRYPOINT ["/usr/bin/Gradido_LoginServer"] +# Wait on mariadb to started +#CMD ["sleep 5", "/usr/bin/Gradido_LoginServer"] +#RUN chmod +x ./start_after_mysql.sh +#ENTRYPOINT ["/usr/bin/Gradido_LoginServer"] +#CMD gdb -ex=r Gradido_LoginServer +CMD Gradido_LoginServer diff --git a/login_server/Dockerfiles/Dockerfile.dependencies b/login_server/Dockerfiles/Dockerfile.dependencies new file mode 100644 index 000000000..bfdb6b0d0 --- /dev/null +++ b/login_server/Dockerfiles/Dockerfile.dependencies @@ -0,0 +1,46 @@ +######################################################################################################### +# debug build preparation +######################################################################################################### + +From conanio/gcc7 as debug_preparation + +ENV DOCKER_WORKDIR="/code" + +USER root + +COPY --from=unicorny/protoc:3.9.1 /usr/bin/protoc /usr/bin/ +COPY --from=unicorny/protoc:3.9.1 /usr/lib/libprotobuf.so.20 /usr/lib/libprotobuf.so.20 +COPY --from=unicorny/protoc:3.9.1 /usr/lib/libprotoc.so.20 /usr/lib/libprotoc.so.20 +COPY --from=unicorny/protoc:3.9.1 /usr/include/google/protobuf/* /usr/include/google/protobuf/ + +#VOLUME /root/.conan + +RUN mkdir -p ${DOCKER_WORKDIR} +WORKDIR ${DOCKER_WORKDIR} + +COPY ./dependencies ./dependencies +COPY ./conanfile.txt ./conanfile.txt + +RUN ls -la +RUN cd dependencies/iroha-ed25519 && \ + ls -la && \ + mkdir build && \ + cd build && \ + cmake .. -DCMAKE_BUILD_TYPE=Debug -DEDIMPL=ref10 -DHASH=sha2_sphlib -DRANDOM=bcryptgen -DBUILD=STATIC && \ + make -j$(nproc) + +RUN cd dependencies/mariadb-connector-c && \ + mkdir build && \ + cd build && \ + cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_SSL=OFF .. + + +#RUN chmod +x compile_proto.sh +#RUN chmod +x compile_pot.sh +#RUN ls -la +#RUN ./compile_pot.sh +#RUN ./compile_proto.sh +RUN mkdir build && \ + cd build && \ + conan install .. --build=missing -s build_type=Debug + diff --git a/login_server/Dockerfiles/Dockefile.protoc b/login_server/Dockerfiles/Dockerfile.protoc similarity index 92% rename from login_server/Dockerfiles/Dockefile.protoc rename to login_server/Dockerfiles/Dockerfile.protoc index 92cf80c2a..7aef56f62 100644 --- a/login_server/Dockerfiles/Dockefile.protoc +++ b/login_server/Dockerfiles/Dockerfile.protoc @@ -25,6 +25,6 @@ COPY --from=protoc3.9.1_build /protobuf/src/google/protobuf/*.proto /usr/include COPY --from=protoc3.9.1_build /protobuf/src/google/protobuf/*.h /usr/include/google/protobuf/ ## build with: -# docker build . -f Dockefile.protoc -t unicorny/protoc:3.9.1 +# docker build . -f Dockefile.protoc -t gradido/protoc:3.9.1 ## upload (login to docker hub on shell before): -# docker push unicorny/protoc:3.9.1 \ No newline at end of file +# docker push gradido/protoc:3.9.1 \ No newline at end of file From 0da527917523530186e6effe63dc001fc99bd3e3 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Mon, 29 Mar 2021 17:47:55 +0200 Subject: [PATCH 4/4] build login-server on docker-compose up in a docker volume so it rebuild only neccessary parts if some c++ files have changed --- docker-compose.override.yml | 127 +++++++++++----------- login_server/Dockerfile.debug | 21 ++-- login_server/Dockerfiles/build_and_run.sh | 9 ++ 3 files changed, 82 insertions(+), 75 deletions(-) create mode 100644 login_server/Dockerfiles/build_and_run.sh diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 97cdb3155..f59316396 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -1,63 +1,64 @@ -version: "3.4" - -services: - ######################################################## - # FRONTEND ############################################# - ######################################################## - frontend: - image: gradido/frontend:development - build: - target: development - environment: - - NODE_ENV="development" - # - DEBUG=true - - NUXT_BUILD=/tmp/nuxt # avoid file permission issues when `rm -rf .nuxt/` - volumes: - # This makes sure the docker container has its own node modules. - # Therefore it is possible to have a different node version on the host machine - - frontend_node_modules:/app/node_modules - # bind the local folder to the docker to allow live reload - - ./frontend:/app - - ######################################################### - ## LOGIN SERVER ######################################### - ######################################################### - login-server: - build: - target: login_server_debug - dockerfile: Dockerfile.debug - security_opt: - - seccomp:unconfined - cap_add: - - SYS_PTRACE - volumes: - - ./logs:/var/log/grd_login - - conan:/root/.conan - - ######################################################### - ## NGINX ################################################ - ######################################################### - nginx: - volumes: - - ./logs:/var/log/nginx - - ######################################################### - ## PHPMYADMIN ########################################### - ######################################################### - phpmyadmin: - image: phpmyadmin - container_name: phpmyadmin - environment: - - PMA_ARBITRARY=1 - #restart: always - ports: - - 8074:80 - networks: - - internal-net - - external-net - volumes: - - /sessions - -volumes: - frontend_node_modules: - conan: \ No newline at end of file +version: "3.4" + +services: + ######################################################## + # FRONTEND ############################################# + ######################################################## + frontend: + image: gradido/frontend:development + build: + target: development + environment: + - NODE_ENV="development" + # - DEBUG=true + - NUXT_BUILD=/tmp/nuxt # avoid file permission issues when `rm -rf .nuxt/` + volumes: + # This makes sure the docker container has its own node modules. + # Therefore it is possible to have a different node version on the host machine + - frontend_node_modules:/app/node_modules + # bind the local folder to the docker to allow live reload + - ./frontend:/app + + ######################################################### + ## LOGIN SERVER ######################################### + ######################################################### + login-server: + build: + target: login_server_debug + dockerfile: Dockerfile.debug + security_opt: + - seccomp:unconfined + cap_add: + - SYS_PTRACE + volumes: + - ./logs:/var/log/grd_login + - ./login_server/src:/code/src + - login_build:/code/build_vol + + ######################################################### + ## NGINX ################################################ + ######################################################### + nginx: + volumes: + - ./logs:/var/log/nginx + + ######################################################### + ## PHPMYADMIN ########################################### + ######################################################### + phpmyadmin: + image: phpmyadmin + container_name: phpmyadmin + environment: + - PMA_ARBITRARY=1 + #restart: always + ports: + - 8074:80 + networks: + - internal-net + - external-net + volumes: + - /sessions + +volumes: + frontend_node_modules: + login_build: \ No newline at end of file diff --git a/login_server/Dockerfile.debug b/login_server/Dockerfile.debug index 6c72821fa..4c9945f8c 100644 --- a/login_server/Dockerfile.debug +++ b/login_server/Dockerfile.debug @@ -24,8 +24,8 @@ USER root #COPY --from=debug_preparation /code /code #COPY --from=debug_preparation /home/conan /home/conan #RUN ls -la /home/conan/.conan -COPY . . WORKDIR ${DOCKER_WORKDIR} +COPY . . #RUN ls -la #RUN cat build/conanbuildinfo.cmake @@ -34,18 +34,15 @@ RUN chmod +x compile_pot.sh #RUN ls -la RUN ./compile_pot.sh RUN ./compile_proto.sh -RUN cd build && \ - cmake -DCMAKE_BUILD_TYPE=Debug .. && \ - make -j$(nproc) Gradido_LoginServer + ######################################################################################################### # run debug ######################################################################################################### -FROM ubuntu:latest as login_server_debug - -WORKDIR "/usr/bin" +FROM debug as login_server_debug +ENV DOCKER_WORKDIR="/code" #RUN apt-get update && \ # apt-get install -y --no-install-recommends gdb && \ # apt-get autoclean && \ @@ -54,17 +51,17 @@ WORKDIR "/usr/bin" # rm -rf /var/lib/apt/lists/* VOLUME /var/log/grd_login +VOLUME /code/src -COPY --from=debug /code/build/bin/Gradido_LoginServer /usr/bin/ -COPY --from=debug /code/build/lib/libmariadb.so.3 /usr/lib/ -#COPY start_after_mysql.sh . -RUN chmod +x /usr/bin/Gradido_LoginServer EXPOSE 1200 EXPOSE 1201 +WORKDIR ${DOCKER_WORKDIR} +RUN chmod +x ./Dockerfiles/build_and_run.sh + #ENTRYPOINT ["/usr/bin/Gradido_LoginServer"] # Wait on mariadb to started #CMD ["sleep 5", "/usr/bin/Gradido_LoginServer"] #RUN chmod +x ./start_after_mysql.sh #ENTRYPOINT ["/usr/bin/Gradido_LoginServer"] #CMD gdb -ex=r Gradido_LoginServer -CMD Gradido_LoginServer +CMD ./Dockerfiles/build_and_run.sh diff --git a/login_server/Dockerfiles/build_and_run.sh b/login_server/Dockerfiles/build_and_run.sh new file mode 100644 index 000000000..ee9999532 --- /dev/null +++ b/login_server/Dockerfiles/build_and_run.sh @@ -0,0 +1,9 @@ +#!/bin/bash +cp build/conan* build_vol/ +cd build_vol + +cmake -DCMAKE_BUILD_TYPE=Debug .. +make -j$(nproc) Gradido_LoginServer +echo "building done" +chmod +x ./bin/Gradido_LoginServer +./bin/Gradido_LoginServer