mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
rebuilding debug build strategie for minimum space and time requirements for user
This commit is contained in:
parent
c3022a8849
commit
604755db15
13
.gitmodules
vendored
13
.gitmodules
vendored
@ -28,4 +28,15 @@
|
|||||||
[submodule "community_server/src/protobuf"]
|
[submodule "community_server/src/protobuf"]
|
||||||
path = community_server/src/protobuf
|
path = community_server/src/protobuf
|
||||||
url = git@github.com:gradido/gradido_protocol.git
|
url = git@github.com:gradido/gradido_protocol.git
|
||||||
|
[submodule "login_server/dependencies/libsodium"]
|
||||||
|
path = login_server/dependencies/libsodium
|
||||||
|
url = https://github.com/jedisct1/libsodium.git
|
||||||
|
[submodule "login_server/dependencies/boost/static_assert"]
|
||||||
|
path = login_server/dependencies/boost/static_assert
|
||||||
|
url = https://github.com/boostorg/static_assert.git
|
||||||
|
[submodule "login_server/dependencies/boost/iterator"]
|
||||||
|
path = login_server/dependencies/boost/iterator
|
||||||
|
url = https://github.com/boostorg/iterator.git
|
||||||
|
[submodule "login_server/dependencies/boost/spirit"]
|
||||||
|
path = login_server/dependencies/boost/spirit
|
||||||
|
url = https://github.com/boostorg/spirit.git
|
||||||
|
|||||||
@ -24,8 +24,8 @@ services:
|
|||||||
#########################################################
|
#########################################################
|
||||||
login-server:
|
login-server:
|
||||||
build:
|
build:
|
||||||
target: login_server_debug
|
target: login_server_alpine_debug
|
||||||
dockerfile: Dockerfile.debug
|
dockerfile: Dockerfile.alpine-debug
|
||||||
security_opt:
|
security_opt:
|
||||||
- seccomp:unconfined
|
- seccomp:unconfined
|
||||||
cap_add:
|
cap_add:
|
||||||
@ -33,9 +33,10 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- ./logs:/var/log/grd_login
|
- ./logs:/var/log/grd_login
|
||||||
- ./login_server/src:/code/src
|
- ./login_server/src:/code/src
|
||||||
|
- ./login_server/dependencies:/code/dependencies
|
||||||
|
- ./login_server/scripts:/code/scripts
|
||||||
- ./configs/login_server:/etc/grd_login
|
- ./configs/login_server:/etc/grd_login
|
||||||
- login_build:/code/build
|
- login_build_alpine:/code/build
|
||||||
- conan:/root/.conan
|
|
||||||
|
|
||||||
|
|
||||||
#########################################################
|
#########################################################
|
||||||
@ -100,6 +101,5 @@ services:
|
|||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
frontend_node_modules:
|
frontend_node_modules:
|
||||||
login_build:
|
login_build_alpine:
|
||||||
conan:
|
|
||||||
|
|
||||||
|
|||||||
@ -14,10 +14,12 @@ else()
|
|||||||
set(INSTALL_BINDIR "bin")
|
set(INSTALL_BINDIR "bin")
|
||||||
set(INSTALL_PLUGINDIR "bin")
|
set(INSTALL_PLUGINDIR "bin")
|
||||||
endif()
|
endif()
|
||||||
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ./lib)
|
||||||
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ./lib)
|
||||||
|
|
||||||
include_directories(
|
include_directories(
|
||||||
"dependencies"
|
"dependencies"
|
||||||
"dependencies/tinf/src/"
|
"dependencies/tinf/src"
|
||||||
"dependencies/mariadb-connector-c/include"
|
"dependencies/mariadb-connector-c/include"
|
||||||
"dependencies/mariadb-connector-c/build/include"
|
"dependencies/mariadb-connector-c/build/include"
|
||||||
"dependencies/spirit-po/include"
|
"dependencies/spirit-po/include"
|
||||||
@ -131,10 +133,12 @@ if(WIN32)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
############################## config and add poco ###################################
|
############################## config and add poco ###################################
|
||||||
|
#SET(SOME_EXPAT_OPTION OFF CACHE BOOL "Use some expat option")
|
||||||
|
SET(ENABLE_MONGODB OFF CACHE BOOL "" FORCE)
|
||||||
|
SET(ENABLE_DATA_SQLITE OFF CACHE BOOL "" FORCE)
|
||||||
|
SET(ENABLE_REDIS OFF CACHE BOOL "" FORCE)
|
||||||
|
SET(ENABLE_PAGECOMPILER_FILE2PAGE OFF CACHE BOOL "" FORCE)
|
||||||
add_subdirectory("dependencies/poco")
|
add_subdirectory("dependencies/poco")
|
||||||
set(ENABLE_MONGODB OFF)
|
|
||||||
set(ENABLE_DATA_SQLITE OFF)
|
|
||||||
set(ENABLE_REDIS OFF)
|
|
||||||
|
|
||||||
set(POCO_LIBS PocoFoundation PocoUtil PocoNet PocoNetSSL PocoData)
|
set(POCO_LIBS PocoFoundation PocoUtil PocoNet PocoNetSSL PocoData)
|
||||||
|
|
||||||
|
|||||||
133
login_server/CMakeLists.txt.lib
Normal file
133
login_server/CMakeLists.txt.lib
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.18.2)
|
||||||
|
project(Gradido_LoginServer C CXX)
|
||||||
|
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "bin" )
|
||||||
|
|
||||||
|
SET ( CMAKE_CXX_FLAGS "-std=c++17" )
|
||||||
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
set(CMAKE_CXX_FLAGS "/MP /EHsc")
|
||||||
|
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3")
|
||||||
|
set(CMAKE_CXX_FLAGS_RELEASE "-O3")
|
||||||
|
else()
|
||||||
|
set(INSTALL_BINDIR "bin")
|
||||||
|
set(INSTALL_PLUGINDIR "bin")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
include_directories(
|
||||||
|
"dependencies"
|
||||||
|
"dependencies/tinf/src"
|
||||||
|
"dependencies/mariadb-connector-c/include"
|
||||||
|
"dependencies/mariadb-connector-c/build/include"
|
||||||
|
"dependencies/spirit-po/include"
|
||||||
|
"dependencies/grpc/include"
|
||||||
|
"dependencies/grpc/third_party/protobuf/src"
|
||||||
|
"dependencies/grpc/third_party/googletest/googletest/include"
|
||||||
|
"dependencies/poco/Crypto/include"
|
||||||
|
"dependencies/poco/Data/include"
|
||||||
|
"dependencies/poco/Util/include"
|
||||||
|
"dependencies/poco/Foundation/include"
|
||||||
|
"dependencies/poco/JSON/include"
|
||||||
|
"dependencies/poco/Net/include"
|
||||||
|
"dependencies/poco/NetSSL_OpenSSL/include"
|
||||||
|
"src/cpp/proto"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#set(MYSQL_INCLUDE_DIR "dependencies/mariadb-connector-c/include")
|
||||||
|
|
||||||
|
FILE(GLOB CONTROLLER "src/cpp/controller/*.cpp" "src/cpp/controller/*.h")
|
||||||
|
FILE(GLOB TINF "dependencies/tinf/src/*.c" "dependencies/tinf/src/*.h")
|
||||||
|
FILE(GLOB HTTPInterface "src/cpp/HTTPInterface/*.h" "src/cpp/HTTPInterface/*.cpp")
|
||||||
|
FILE(GLOB JSONInterface "src/cpp/JSONInterface/*.h" "src/cpp/JSONInterface/*.cpp")
|
||||||
|
FILE(GLOB TASKS "src/cpp/tasks/*.cpp" "src/cpp/tasks/*.h")
|
||||||
|
FILE(GLOB SINGLETON_MANAGER "src/cpp/SingletonManager/*.h" "src/cpp/SingletonManager/*.cpp")
|
||||||
|
FILE(GLOB LIB_SRC "src/cpp/lib/*.h" "src/cpp/lib/*.cpp")
|
||||||
|
FILE(GLOB MODEL "src/cpp/model/*.h" "src/cpp/model/*.cpp")
|
||||||
|
FILE(GLOB MODEL_TABLE "src/cpp/model/table/*.h" "src/cpp/model/table/*.cpp")
|
||||||
|
FILE(GLOB MODEL_EMAIL "src/cpp/model/email/*.h" "src/cpp/model/email/*.cpp")
|
||||||
|
FILE(GLOB MODEL_HEDERA "src/cpp/model/hedera/*.h" "src/cpp/model/hedera/*.cpp")
|
||||||
|
FILE(GLOB MODEL_GRADIDO "src/cpp/model/gradido/*.h" "src/cpp/model/gradido/*.cpp")
|
||||||
|
FILE(GLOB CRYPTO "src/cpp/Crypto/*.h" "src/cpp/Crypto/*.cpp")
|
||||||
|
FILE(GLOB MAIN "src/cpp/*.cpp" "src/cpp/*.c" "src/cpp/*.h")
|
||||||
|
FILE(GLOB MYSQL "src/cpp/MySQL/*.cpp" "src/cpp/MySQL/*.h" "src/cpp/MySQL/Poco/*.h")
|
||||||
|
FILE(GLOB PROTO_GRADIDO "src/cpp/proto/gradido/*.cc" "src/cpp/proto/gradido/*.h")
|
||||||
|
FILE(GLOB PROTO_HEDERA "src/cpp/proto/hedera/*.cc" "src/cpp/proto/hedera/*.h")
|
||||||
|
|
||||||
|
# used only for test project
|
||||||
|
FILE(GLOB TEST "src/cpp/test/*.cpp" "src/cpp/test/*.h")
|
||||||
|
FILE(GLOB TEST_CRYPTO "src/cpp/test/crypto/*.cpp" "src/cpp/test/crypto/*.h")
|
||||||
|
FILE(GLOB TEST_MODEL "src/cpp/test/model/*.cpp" "src/cpp/test/model/*.h")
|
||||||
|
FILE(GLOB TEST_MODEL_TABLE "src/cpp/test/model/table/*.cpp" "src/cpp/test/model/table/*.h")
|
||||||
|
FILE(GLOB TEST_CONTROLLER "src/cpp/test/controller/*.cpp" "src/cpp/test/controller/*.h")
|
||||||
|
|
||||||
|
SET(LOCAL_SRCS
|
||||||
|
${CONTROLLER} ${TINF} ${MAIN} ${HTTPInterface}
|
||||||
|
${JSONInterface} ${CRYPTO}
|
||||||
|
${MODEL} ${MODEL_TABLE} ${MODEL_EMAIL} ${MODEL_HEDERA} ${MODEL_GRADIDO}
|
||||||
|
${SINGLETON_MANAGER} ${LIB_SRC} ${MYSQL} ${TASKS}
|
||||||
|
${PROTO_GRADIDO} ${PROTO_HEDERA}
|
||||||
|
)
|
||||||
|
SET(LOCAL_TEST_SRC
|
||||||
|
${TEST} ${TEST_CRYPTO} ${TEST_MODEL} ${TEST_MODEL_TABLE} ${TEST_CONTROLLER}
|
||||||
|
)
|
||||||
|
aux_source_directory("src/cpp" LOCAL_SRCS)
|
||||||
|
|
||||||
|
if(MSVC)
|
||||||
|
# src
|
||||||
|
source_group("controller" FILES ${CONTROLLER})
|
||||||
|
source_group("proto\\gradido" FILES ${PROTO_GRADIDO})
|
||||||
|
source_group("proto\\hedera" FILES ${PROTO_HEDERA})
|
||||||
|
source_group("tinf" FILES ${TINF})
|
||||||
|
source_group("Crypto" FILES ${CRYPTO})
|
||||||
|
source_group("tasks" FILES ${TASKS})
|
||||||
|
source_group("model\\table" FILES ${MODEL_TABLE})
|
||||||
|
source_group("model\\email" FILES ${MODEL_EMAIL})
|
||||||
|
source_group("model\\hedera" FILES ${MODEL_HEDERA})
|
||||||
|
source_group("model\\gradido" FILES ${MODEL_GRADIDO})
|
||||||
|
source_group("model" FILES ${MODEL})
|
||||||
|
source_group("mysql" FILES ${MYSQL})
|
||||||
|
source_group("SingletonManager" FILES ${SINGLETON_MANAGER})
|
||||||
|
source_group("lib" FILES ${LIB_SRC})
|
||||||
|
source_group("HTTP-Interface" FILES ${HTTPInterface})
|
||||||
|
source_group("Json-Interface" FILES ${JSONInterface})
|
||||||
|
source_group("Test\\crypto" FILES ${TEST_CRYPTO})
|
||||||
|
source_group("Test\\model\\table" FILES ${TEST_MODEL_TABLE})
|
||||||
|
source_group("Test\\model" FILES ${TEST_MODEL})
|
||||||
|
source_group("Test\\controller" FILES ${TEST_CONTROLLER})
|
||||||
|
source_group("Test" FILES ${TEST})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_executable(Gradido_LoginServer ${LOCAL_SRCS})
|
||||||
|
|
||||||
|
############################## config and add mariadb ###################################
|
||||||
|
|
||||||
|
find_library(MYSQL_LIBRARIES mariadbd PATHS "pre_build/dependencies/mariadb-connector-c/libmariadb/lib" REQUIRED)
|
||||||
|
|
||||||
|
############################## config and add poco ###################################
|
||||||
|
set(BUILD_LIB_PATH "pre_build/lib")
|
||||||
|
find_library(POCO_FOUNDATION_LIB PocoFoundationd PATHS ${BUILD_LIB_PATH} REQUIRED)
|
||||||
|
find_library(POCO_UTIL_LIB PocoUtild PATHS ${BUILD_LIB_PATH} REQUIRED)
|
||||||
|
find_library(POCO_NET_SSL_LIB PocoNetSSLd PATHS ${BUILD_LIB_PATH} REQUIRED)
|
||||||
|
find_library(POCO_DATA_LIB PocoDatad PATHS ${BUILD_LIB_PATH} REQUIRED)
|
||||||
|
find_library(POCO_JSON_LIB PocoJSONd PATHS ${BUILD_LIB_PATH} REQUIRED)
|
||||||
|
find_library(POCO_NET_LIB PocoNetd PATHS ${BUILD_LIB_PATH} REQUIRED)
|
||||||
|
|
||||||
|
set(POCO_LIBS ${POCO_FOUNDATION_LIB} ${POCO_UTIL_LIB} ${POCO_NET_SSL_LIB} ${POCO_DATA_LIB} ${POCO_JSON_LIB} ${POCO_NET_LIB})
|
||||||
|
|
||||||
|
############################## config and add grpc ###################################
|
||||||
|
|
||||||
|
|
||||||
|
find_library(PROTOBUF_LIB protobufd PATHS "pre_build/dependencies/grpc/third_party/protobuf/lib" REQUIRED)
|
||||||
|
set(DEPENDENCIES_GRPC_LIB_PATH "pre_build/dependencies/grpc/lib")
|
||||||
|
find_library(GRPC_PP_REFLECTION grpc++_reflectiond PATHS ${DEPENDENCIES_GRPC_LIB_PATH} REQUIRED)
|
||||||
|
find_library(GRPC_PP grpc++d PATHS ${DEPENDENCIES_GRPC_LIB_PATH} REQUIRED)
|
||||||
|
|
||||||
|
set(GRPC_LIBS, ${GRPC_PP_REFLECTION} ${GRPC_PP} ${PROTOBUF_LIB})
|
||||||
|
############################## build login server ###################################
|
||||||
|
|
||||||
|
target_link_libraries(Gradido_LoginServer ${GRPC_LIBS} ${POCO_LIBS} ${MYSQL_LIBRARIES} sodium)
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ ENV DOCKER_WORKDIR="/code"
|
|||||||
USER root
|
USER root
|
||||||
|
|
||||||
RUN apt-get update \
|
RUN apt-get update \
|
||||||
&& apt-get -y --no-install-recommends install libsodium-dev libboost-all-dev gettext \
|
&& apt-get -y --no-install-recommends install libboost-all-dev gettext \
|
||||||
&& apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*
|
&& apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*
|
||||||
|
|
||||||
RUN mkdir -p ${DOCKER_WORKDIR}
|
RUN mkdir -p ${DOCKER_WORKDIR}
|
||||||
|
|||||||
21
login_server/Dockerfile.alpine-debug
Normal file
21
login_server/Dockerfile.alpine-debug
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
FROM gradido/login_dependencies:alpine-stage2.1 as login_server_alpine_debug
|
||||||
|
|
||||||
|
ENV DOCKER_WORKDIR="/code"
|
||||||
|
|
||||||
|
|
||||||
|
EXPOSE 1200
|
||||||
|
EXPOSE 1201
|
||||||
|
WORKDIR ${DOCKER_WORKDIR}
|
||||||
|
|
||||||
|
COPY ./CMakeLists.txt.lib ./CMakeLists.txt
|
||||||
|
RUN ls -la ${DOCKER_WORKDIR}/pre_build && \
|
||||||
|
ls -la ${DOCKER_WORKDIR}/pre_build/lib && \
|
||||||
|
ls -la ${DOCKER_WORKDIR}/pre_build/dependencies && \
|
||||||
|
ls -la ${DOCKER_WORKDIR}/pre_build/dependencies/grpc/third_party/protobuf/lib && \
|
||||||
|
ls -la ${DOCKER_WORKDIR}/pre_build/dependencies/grpc/lib && \
|
||||||
|
ls -la ${DOCKER_WORKDIR}/pre_build/dependencies/mariadb-connector-c/ && \
|
||||||
|
ls -la ${DOCKER_WORKDIR}/pre_build/dependencies/mariadb-connector-c/libmariadb && \
|
||||||
|
ls -la ${DOCKER_WORKDIR}/pre_build/dependencies/mariadb-connector-c/libmariadb/lib
|
||||||
|
|
||||||
|
CMD cp -r ${DOCKER_WORKDIR}/pre_build/bin ${DOCKER_WORKDIR}/build/bin; cd scripts; ./prepare_build.sh; ./build_debug.sh; cd ..; ./build/bin/Gradido_LoginServer
|
||||||
|
|
||||||
@ -12,7 +12,7 @@ USER root
|
|||||||
RUN git clone https://github.com/Kitware/CMake.git --branch=v3.19.8 \
|
RUN git clone https://github.com/Kitware/CMake.git --branch=v3.19.8 \
|
||||||
&& cd CMake \
|
&& cd CMake \
|
||||||
&& ./bootstrap \
|
&& ./bootstrap \
|
||||||
&& make -j${nproc} \
|
&& make -j$(nproc) \
|
||||||
&& make install
|
&& make install
|
||||||
|
|
||||||
#########################################################################################################
|
#########################################################################################################
|
||||||
@ -24,19 +24,14 @@ USER root
|
|||||||
|
|
||||||
ENV DOCKER_WORKDIR="/code"
|
ENV DOCKER_WORKDIR="/code"
|
||||||
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get -y --no-install-recommends install libsodium-dev libboost-all-dev \
|
|
||||||
&& apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*
|
|
||||||
|
|
||||||
RUN mkdir -p ${DOCKER_WORKDIR}
|
RUN mkdir -p ${DOCKER_WORKDIR}
|
||||||
WORKDIR ${DOCKER_WORKDIR}
|
WORKDIR ${DOCKER_WORKDIR}
|
||||||
|
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|
||||||
RUN cd dependencies/mariadb-connector-c && \
|
RUN cd scripts \
|
||||||
mkdir build && \
|
&& chmod +x ./prepare_build.sh \
|
||||||
cd build && \
|
&& ./prepare_build.sh
|
||||||
cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_SSL=OFF ..
|
|
||||||
|
|
||||||
#########################################################################################################
|
#########################################################################################################
|
||||||
# run debug
|
# run debug
|
||||||
@ -48,7 +43,7 @@ ENV DOCKER_WORKDIR="/code"
|
|||||||
EXPOSE 1200
|
EXPOSE 1200
|
||||||
EXPOSE 1201
|
EXPOSE 1201
|
||||||
WORKDIR ${DOCKER_WORKDIR}
|
WORKDIR ${DOCKER_WORKDIR}
|
||||||
RUN chmod +x ./Dockerfiles/build_and_run.sh
|
RUN chmod +x ./scripts/build_and_run.sh
|
||||||
|
|
||||||
CMD ./Dockerfiles/build_and_run.sh; ./build/bin/Gradido_LoginServer
|
CMD ./scripts/build_and_run.sh; ./build/bin/Gradido_LoginServer
|
||||||
|
|
||||||
|
|||||||
@ -1,56 +1,93 @@
|
|||||||
#########################################################################################################
|
#########################################################################################################
|
||||||
# debug build preparation
|
# gcc 9 with libssl
|
||||||
#########################################################################################################
|
#########################################################################################################
|
||||||
From conanio/gcc9 as build_debug_preparation
|
FROM gcc:9 as gcc_9_libssl
|
||||||
USER root
|
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"
|
ENV DOCKER_WORKDIR="/code"
|
||||||
|
|
||||||
RUN mkdir -p ${DOCKER_WORKDIR}
|
RUN mkdir -p ${DOCKER_WORKDIR}
|
||||||
WORKDIR ${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 ./dependencies ./dependencies
|
||||||
COPY ./conanfile.txt ./conanfile.txt
|
COPY ./scripts ./scripts
|
||||||
|
|
||||||
|
|
||||||
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 .
|
COPY ./CMakeLists.txt .
|
||||||
RUN cd build && \
|
COPY ./src ./src
|
||||||
cmake -DCMAKE_BUILD_TYPE=Debug .. && \
|
|
||||||
make -j${CPU_COUNT} protoc grpc_cpp_plugin
|
|
||||||
|
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
|
||||||
|
|
||||||
#########################################################################################################
|
#########################################################################################################
|
||||||
# parse proto and gettext
|
# debug build
|
||||||
#########################################################################################################
|
#########################################################################################################
|
||||||
From proto_grpc as proto_parse
|
FROM gcc_9_libssl as build_debug
|
||||||
|
|
||||||
|
USER root
|
||||||
ENV DOCKER_WORKDIR="/code"
|
ENV DOCKER_WORKDIR="/code"
|
||||||
|
|
||||||
|
RUN mkdir -p ${DOCKER_WORKDIR}
|
||||||
WORKDIR ${DOCKER_WORKDIR}
|
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 && \
|
# copy CMake from last stage
|
||||||
./unix_parse_proto.sh
|
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
|
||||||
|
|
||||||
|
|||||||
87
login_server/Dockerfiles/Dockerfile.dependencies-alpine
Normal file
87
login_server/Dockerfiles/Dockerfile.dependencies-alpine
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
|
||||||
|
##### BUILD-ENV #####
|
||||||
|
FROM alpine:3.13.5 as alpine-build
|
||||||
|
|
||||||
|
RUN apk add --update --no-cache icu-dev
|
||||||
|
RUN apk add --no-cache git openssl-dev make gcc musl-dev g++ linux-headers libintl gettext-dev boost-dev libsodium-dev
|
||||||
|
|
||||||
|
|
||||||
|
##### CMAKE #####
|
||||||
|
FROM alpine-build as alpine-gxx-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
|
||||||
|
|
||||||
|
RUN ls -la /usr/include/boost
|
||||||
|
|
||||||
|
##### BUILD ENV ##############
|
||||||
|
FROM alpine-build as build_debug_dependencies
|
||||||
|
|
||||||
|
USER root
|
||||||
|
ENV DOCKER_WORKDIR="/code"
|
||||||
|
|
||||||
|
RUN mkdir -p ${DOCKER_WORKDIR}
|
||||||
|
WORKDIR ${DOCKER_WORKDIR}
|
||||||
|
|
||||||
|
RUN apk add --no-cache git make gettext openssl-dev
|
||||||
|
# copy CMake from last stage
|
||||||
|
COPY --from=alpine-gxx-cmake /usr/local/bin/cmake /usr/local/bin/cmake
|
||||||
|
COPY --from=alpine-gxx-cmake /usr/local/share/cmake-3.19/Modules /usr/local/share/cmake-3.19/Modules
|
||||||
|
COPY --from=alpine-gxx-cmake /usr/local/share/cmake-3.19/Templates /usr/local/share/cmake-3.19/Templates
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# COPY files from context
|
||||||
|
COPY ./dependencies ./dependencies
|
||||||
|
COPY ./scripts ./scripts
|
||||||
|
COPY ./CMakeLists.txt .
|
||||||
|
COPY ./src ./src
|
||||||
|
|
||||||
|
# run build
|
||||||
|
RUN cd scripts && \
|
||||||
|
chmod +x ./prepare_build.sh && \
|
||||||
|
./prepare_build.sh && \
|
||||||
|
mkdir ../build && \
|
||||||
|
chmod +x ./build_debug.sh && \
|
||||||
|
./build_debug.sh
|
||||||
|
|
||||||
|
#########################################################################################################
|
||||||
|
# builded libs and binaries
|
||||||
|
#########################################################################################################
|
||||||
|
FROM alpine-build as debug_builded
|
||||||
|
|
||||||
|
USER root
|
||||||
|
ENV DOCKER_WORKDIR="/code"
|
||||||
|
|
||||||
|
RUN mkdir -p ${DOCKER_WORKDIR}
|
||||||
|
WORKDIR ${DOCKER_WORKDIR}
|
||||||
|
|
||||||
|
RUN apk add --no-cache bash
|
||||||
|
|
||||||
|
# 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 ${DOCKER_WORKDIR}/pre_build/bin
|
||||||
|
COPY --from=build_debug_dependencies /code/build/lib ${DOCKER_WORKDIR}/pre_build/lib
|
||||||
|
|
||||||
|
# grpc
|
||||||
|
COPY --from=build_debug_dependencies /code/build/dependencies/grpc/lib ${DOCKER_WORKDIR}/pre_build/dependencies/grpc/lib
|
||||||
|
COPY --from=build_debug_dependencies /code/build/dependencies/grpc/third_party/protobuf/lib ${DOCKER_WORKDIR}/pre_build/dependencies/grpc/third_party/protobuf/lib
|
||||||
|
COPY --from=build_debug_dependencies /code/build/dependencies/grpc/third_party/re2/lib ${DOCKER_WORKDIR}/pre_build/dependencies/grpc/third_party/re2/lib
|
||||||
|
COPY --from=build_debug_dependencies /code/build/dependencies/grpc/third_party/zlib/lib ${DOCKER_WORKDIR}/pre_build/dependencies/grpc/third_party/zlib/lib
|
||||||
|
COPY --from=build_debug_dependencies /code/build/dependencies/grpc/third_party/cares/cares/lib ${DOCKER_WORKDIR}/pre_build/dependencies/grpc/third_party/cares/cares/lib
|
||||||
|
COPY --from=build_debug_dependencies /code/build/dependencies/mariadb-connector-c/libmariadb/lib ${DOCKER_WORKDIR}/pre_build/dependencies/mariadb-connector-c/libmariadb/lib
|
||||||
|
|
||||||
|
|
||||||
@ -1,22 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
cd build
|
|
||||||
cmake -DCMAKE_BUILD_TYPE=Debug ..
|
|
||||||
make -j${nproc} protoc grpc_cpp_plugin
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
if [ ! -d "./src/cpp/proto/hedera" ] ; then
|
|
||||||
#if [ ! -f "./src/cpp/proto/gradido/TransactionBody.pb.h"] ; then
|
|
||||||
chmod +x unix_parse_proto.sh
|
|
||||||
./unix_parse_proto.sh
|
|
||||||
fi
|
|
||||||
chmod +x compile_pot.sh
|
|
||||||
|
|
||||||
./compile_pot.sh
|
|
||||||
|
|
||||||
cd build
|
|
||||||
cmake -DCMAKE_BUILD_TYPE=Debug ..
|
|
||||||
make -j$(nproc) Gradido_LoginServer
|
|
||||||
#echo "building done"
|
|
||||||
chmod +x ./bin/Gradido_LoginServer
|
|
||||||
#./bin/Gradido_LoginServer
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
sudo apt install libsodium-dev libboost-all-dev
|
sudo apt install libsodium-dev
|
||||||
|
|
||||||
# get dependencies
|
# get dependencies
|
||||||
git submodule update --init --recursive
|
git submodule update --init --recursive
|
||||||
|
|||||||
@ -1,2 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
xgettext -D src/cpp -p src/LOCALE -o messages.pot --from-code=UTF-8 --files-from=files_to_translate.txt
|
|
||||||
1
login_server/dependencies/libsodium
Submodule
1
login_server/dependencies/libsodium
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 8aedf4733884a25434b5c17c79c7e7dee27e6eb0
|
||||||
@ -1 +0,0 @@
|
|||||||
Subproject commit 159540fe8c8f30b281748fe8a1b79e8b17993a67
|
|
||||||
@ -1,16 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
if [ ! -d "./src/cpp/proto" ] ; then
|
|
||||||
mkdir ./src/cpp/proto
|
|
||||||
fi
|
|
||||||
if [ ! -d "./src/cpp/proto/gradido" ] ; then
|
|
||||||
mkdir ./src/cpp/proto/gradido
|
|
||||||
fi
|
|
||||||
|
|
||||||
./protoc --cpp_out=./src/cpp/proto --proto_path=./src/proto ./src/proto/gradido/*.proto
|
|
||||||
|
|
||||||
if [ ! -d "./src/cpp/proto/hedera" ] ; then
|
|
||||||
mkdir ./src/cpp/proto/hedera
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
./protoc --plugin=protoc-gen-grpc=./grpc_cpp_plugin.exe --cpp_out=./src/cpp/proto/hedera --grpc_out=./src/cpp/proto/hedera --proto_path=./src/proto/hedera/hedera-protobuf/src/main/proto ./src/proto/hedera/hedera-protobuf/src/main/proto/*.proto
|
|
||||||
25
login_server/scripts/build_debug.sh
Executable file
25
login_server/scripts/build_debug.sh
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
cd ../build
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Debug ..
|
||||||
|
if [ ! -f "./bin/protoc" ] ; then
|
||||||
|
make -j$(nproc) protoc
|
||||||
|
cp ./dependencies/grpc/third_party/protobuf/bin/* ./bin/
|
||||||
|
fi
|
||||||
|
if [ ! -f "./bin/grpc_cpp_plugin" ] ; then
|
||||||
|
make -j$(nproc) grpc_cpp_plugin
|
||||||
|
cp ./dependencies/grpc/bin/grpc_cpp_plugin ./bin/grpc_cpp_plugin
|
||||||
|
fi
|
||||||
|
cd ../scripts
|
||||||
|
if [ ! -d "./src/cpp/proto/hedera" ] ; then
|
||||||
|
chmod +x unix_parse_proto.sh
|
||||||
|
./unix_parse_proto.sh
|
||||||
|
fi
|
||||||
|
chmod +x compile_pot.sh
|
||||||
|
./compile_pot.sh
|
||||||
|
|
||||||
|
cd ../build
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Debug ..
|
||||||
|
make -j$(nproc) Gradido_LoginServer PageCompiler
|
||||||
|
|
||||||
|
chmod +x ./bin/Gradido_LoginServer
|
||||||
2
login_server/scripts/compile_pot.sh
Executable file
2
login_server/scripts/compile_pot.sh
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
xgettext -D ../src/cpp -p ../src/LOCALE -o messages.pot --from-code=UTF-8 --files-from=files_to_translate.txt
|
||||||
15
login_server/scripts/prepare_build.sh
Executable file
15
login_server/scripts/prepare_build.sh
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# generate version for mariadb connector
|
||||||
|
|
||||||
|
cd ../dependencies/mariadb-connector-c
|
||||||
|
if [ -d "./build" ] ; then
|
||||||
|
rm -rf ./build
|
||||||
|
fi
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake -DWITH_SSL=OFF ..
|
||||||
|
cd ../../
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
19
login_server/scripts/unix_parse_proto.sh
Executable file
19
login_server/scripts/unix_parse_proto.sh
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
if [ ! -d "../src/cpp/proto" ] ; then
|
||||||
|
mkdir ../src/cpp/proto
|
||||||
|
fi
|
||||||
|
if [ ! -d "../src/cpp/proto/gradido" ] ; then
|
||||||
|
mkdir ../src/cpp/proto/gradido
|
||||||
|
fi
|
||||||
|
PROTOC_PATH=../build/bin
|
||||||
|
CPP_PLUGIN_PATH=../build/bin
|
||||||
|
$PROTOC_PATH/protoc --cpp_out=../src/cpp/proto --proto_path=../src/proto ../src/proto/gradido/*.proto
|
||||||
|
|
||||||
|
if [ ! -d "../src/cpp/proto/hedera" ] ; then
|
||||||
|
mkdir ../src/cpp/proto/hedera
|
||||||
|
fi
|
||||||
|
|
||||||
|
GOOGLE_PROTOBUF_INCLUDES=../dependencies/grpc/third_party/protobuf/src
|
||||||
|
$PROTOC_PATH/protoc --plugin=protoc-gen-grpc=$CPP_PLUGIN_PATH/grpc_cpp_plugin --cpp_out=../src/cpp/proto/hedera --grpc_out=../src/cpp/proto/hedera --proto_path=$GOOGLE_PROTOBUF_INCLUDES --proto_path=../src/proto/hedera/hedera-protobuf/src/main/proto ../src/proto/hedera/hedera-protobuf/src/main/proto/*.proto
|
||||||
|
|
||||||
|
|
||||||
19
login_server/scripts/windows_parse_proto.sh
Normal file
19
login_server/scripts/windows_parse_proto.sh
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
if [ ! -d "../src/cpp/proto" ] ; then
|
||||||
|
mkdir ../src/cpp/proto
|
||||||
|
fi
|
||||||
|
if [ ! -d "../src/cpp/proto/gradido" ] ; then
|
||||||
|
mkdir ../src/cpp/proto/gradido
|
||||||
|
fi
|
||||||
|
PROTOC_PATH=build/bin
|
||||||
|
CPP_PLUGIN_PATH=build/bin
|
||||||
|
$PROTOC_PATH/protoc.exe --cpp_out=../src/cpp/proto --proto_path=../src/proto ../src/proto/gradido/*.proto
|
||||||
|
|
||||||
|
if [ ! -d "./src/cpp/proto/hedera" ] ; then
|
||||||
|
mkdir ./src/cpp/proto/hedera
|
||||||
|
fi
|
||||||
|
|
||||||
|
GOOGLE_PROTOBUF_INCLUDES=../dependencies/grpc/third_party/protobuf/src
|
||||||
|
$PROTOC_PATH/protoc.exe --plugin=protoc-gen-grpc=$CPP_PLUGIN_PATH/grpc_cpp_plugin.exe --cpp_out=../src/cpp/proto/hedera --grpc_out=../src/cpp/proto/hedera --proto_path=$GOOGLE_PROTOBUF_INCLUDES --proto_path=../src/proto/hedera/hedera-protobuf/src/main/proto ../src/proto/hedera/hedera-protobuf/src/main/proto/*.proto
|
||||||
|
|
||||||
|
|
||||||
@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
|||||||
@ -1,19 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
if [ ! -d "./src/cpp/proto" ] ; then
|
|
||||||
mkdir ./src/cpp/proto
|
|
||||||
fi
|
|
||||||
if [ ! -d "./src/cpp/proto/gradido" ] ; then
|
|
||||||
mkdir ./src/cpp/proto/gradido
|
|
||||||
fi
|
|
||||||
PROTOC_PATH=./build/dependencies/grpc/third_party/protobuf/bin
|
|
||||||
CPP_PLUGIN_PATH=./build/dependencies/grpc/bin
|
|
||||||
$PROTOC_PATH/protoc --cpp_out=./src/cpp/proto --proto_path=./src/proto ./src/proto/gradido/*.proto
|
|
||||||
|
|
||||||
if [ ! -d "./src/cpp/proto/hedera" ] ; then
|
|
||||||
mkdir ./src/cpp/proto/hedera
|
|
||||||
fi
|
|
||||||
|
|
||||||
GOOGLE_PROTOBUF_INCLUDES=./dependencies/grpc/third_party/protobuf/src
|
|
||||||
$PROTOC_PATH/protoc --plugin=protoc-gen-grpc=$CPP_PLUGIN_PATH/grpc_cpp_plugin --cpp_out=./src/cpp/proto/hedera --grpc_out=./src/cpp/proto/hedera --proto_path=$GOOGLE_PROTOBUF_INCLUDES --proto_path=./src/proto/hedera/hedera-protobuf/src/main/proto ./src/proto/hedera/hedera-protobuf/src/main/proto/*.proto
|
|
||||||
|
|
||||||
|
|
||||||
@ -1,19 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
if [ ! -d "./src/cpp/proto" ] ; then
|
|
||||||
mkdir ./src/cpp/proto
|
|
||||||
fi
|
|
||||||
if [ ! -d "./src/cpp/proto/gradido" ] ; then
|
|
||||||
mkdir ./src/cpp/proto/gradido
|
|
||||||
fi
|
|
||||||
PROTOC_PATH=build/bin
|
|
||||||
CPP_PLUGIN_PATH=build/bin
|
|
||||||
$PROTOC_PATH/protoc.exe --cpp_out=./src/cpp/proto --proto_path=./src/proto ./src/proto/gradido/*.proto
|
|
||||||
|
|
||||||
if [ ! -d "./src/cpp/proto/hedera" ] ; then
|
|
||||||
mkdir ./src/cpp/proto/hedera
|
|
||||||
fi
|
|
||||||
|
|
||||||
GOOGLE_PROTOBUF_INCLUDES=./dependencies/grpc/third_party/protobuf/src
|
|
||||||
$PROTOC_PATH/protoc.exe --plugin=protoc-gen-grpc=$CPP_PLUGIN_PATH/grpc_cpp_plugin.exe --cpp_out=./src/cpp/proto/hedera --grpc_out=./src/cpp/proto/hedera --proto_path=$GOOGLE_PROTOBUF_INCLUDES --proto_path=./src/proto/hedera/hedera-protobuf/src/main/proto ./src/proto/hedera/hedera-protobuf/src/main/proto/*.proto
|
|
||||||
|
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user