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"]
|
||||
path = community_server/src/protobuf
|
||||
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:
|
||||
build:
|
||||
target: login_server_debug
|
||||
dockerfile: Dockerfile.debug
|
||||
target: login_server_alpine_debug
|
||||
dockerfile: Dockerfile.alpine-debug
|
||||
security_opt:
|
||||
- seccomp:unconfined
|
||||
cap_add:
|
||||
@ -33,9 +33,10 @@ services:
|
||||
volumes:
|
||||
- ./logs:/var/log/grd_login
|
||||
- ./login_server/src:/code/src
|
||||
- ./login_server/dependencies:/code/dependencies
|
||||
- ./login_server/scripts:/code/scripts
|
||||
- ./configs/login_server:/etc/grd_login
|
||||
- login_build:/code/build
|
||||
- conan:/root/.conan
|
||||
- login_build_alpine:/code/build
|
||||
|
||||
|
||||
#########################################################
|
||||
@ -100,6 +101,5 @@ services:
|
||||
|
||||
volumes:
|
||||
frontend_node_modules:
|
||||
login_build:
|
||||
conan:
|
||||
login_build_alpine:
|
||||
|
||||
|
||||
@ -14,10 +14,12 @@ else()
|
||||
set(INSTALL_BINDIR "bin")
|
||||
set(INSTALL_PLUGINDIR "bin")
|
||||
endif()
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ./lib)
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ./lib)
|
||||
|
||||
include_directories(
|
||||
"dependencies"
|
||||
"dependencies/tinf/src/"
|
||||
"dependencies/tinf/src"
|
||||
"dependencies/mariadb-connector-c/include"
|
||||
"dependencies/mariadb-connector-c/build/include"
|
||||
"dependencies/spirit-po/include"
|
||||
@ -131,10 +133,12 @@ if(WIN32)
|
||||
endif()
|
||||
|
||||
############################## 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")
|
||||
set(ENABLE_MONGODB OFF)
|
||||
set(ENABLE_DATA_SQLITE OFF)
|
||||
set(ENABLE_REDIS OFF)
|
||||
|
||||
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
|
||||
|
||||
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/*
|
||||
|
||||
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 \
|
||||
&& cd CMake \
|
||||
&& ./bootstrap \
|
||||
&& make -j${nproc} \
|
||||
&& make -j$(nproc) \
|
||||
&& make install
|
||||
|
||||
#########################################################################################################
|
||||
@ -24,19 +24,14 @@ USER root
|
||||
|
||||
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}
|
||||
WORKDIR ${DOCKER_WORKDIR}
|
||||
|
||||
COPY . .
|
||||
|
||||
RUN cd dependencies/mariadb-connector-c && \
|
||||
mkdir build && \
|
||||
cd build && \
|
||||
cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_SSL=OFF ..
|
||||
RUN cd scripts \
|
||||
&& chmod +x ./prepare_build.sh \
|
||||
&& ./prepare_build.sh
|
||||
|
||||
#########################################################################################################
|
||||
# run debug
|
||||
@ -48,7 +43,7 @@ ENV DOCKER_WORKDIR="/code"
|
||||
EXPOSE 1200
|
||||
EXPOSE 1201
|
||||
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
|
||||
|
||||
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 ./conanfile.txt ./conanfile.txt
|
||||
|
||||
|
||||
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 ./scripts ./scripts
|
||||
COPY ./CMakeLists.txt .
|
||||
RUN cd build && \
|
||||
cmake -DCMAKE_BUILD_TYPE=Debug .. && \
|
||||
make -j${CPU_COUNT} protoc grpc_cpp_plugin
|
||||
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
|
||||
|
||||
#########################################################################################################
|
||||
# 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"
|
||||
|
||||
RUN mkdir -p ${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 && \
|
||||
./unix_parse_proto.sh
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
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
|
||||
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 <cstring>
|
||||
#include <stdlib.h>
|
||||
|
||||
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