mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
alpine build works
This commit is contained in:
parent
8f81d81cfc
commit
92d8316184
@ -102,4 +102,3 @@ services:
|
||||
volumes:
|
||||
frontend_node_modules:
|
||||
login_build_alpine:
|
||||
|
||||
|
||||
@ -18,25 +18,92 @@ 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"
|
||||
"/usr/local/include/mariadb"
|
||||
"build"
|
||||
"build/proto"
|
||||
)
|
||||
|
||||
############################## config and add grpc ###################################
|
||||
find_package(Protobuf REQUIRED)
|
||||
include_directories(${Protobuf_INCLUDE_DIRS})
|
||||
|
||||
FIND_PACKAGE(gRPC CONFIG REQUIRED)
|
||||
find_program(GRPC_CPP_PLUGIN grpc_cpp_plugin)
|
||||
|
||||
set(PROTOC_LIB_PATH "/usr/local/lib")
|
||||
find_library(PROTOBUF_LIB protobufd PATHS ${PROTOC_LIB_PATH} REQUIRED)
|
||||
find_library(PROTOBUF_LITE_LIB protobuf-lited PATHS ${PROTOC_LIB_PATH} REQUIRED)
|
||||
find_library(PROTOC_LIB protocd PATHS ${PROTOC_LIB_PATH} REQUIRED)
|
||||
|
||||
set(DEPENDENCIES_GRPC_LIB_PATH "pre_build/dependencies/grpc/lib")
|
||||
find_library(GRPC_PP_REFLECTION grpc++_reflection PATHS ${DEPENDENCIES_GRPC_LIB_PATH} REQUIRED)
|
||||
find_library(GRPC_PP grpc++ PATHS ${DEPENDENCIES_GRPC_LIB_PATH} REQUIRED)
|
||||
find_library(GRPC_GPR gpr PATHS ${DEPENDENCIES_GRPC_LIB_PATH} REQUIRED)
|
||||
#find_library(GRPC_GRPC grpc PATHS ${DEPENDENCIES_GRPC_LIB_PATH} REQUIRED)
|
||||
|
||||
|
||||
#set(GRPC_LIBS ${GRPC_PP_REFLECTION} ${GRPC_PP} ${GRPC_GPR})
|
||||
set(PROTOBUF_LIBS ${PROTOBUF_LIB} ${PROTOBUF_LITE_LIB} ${PROTOC_LIB})
|
||||
|
||||
############################## parse proto files ###################################
|
||||
|
||||
FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/src/proto GRADIDO_PROTO_MODEL_PATH)
|
||||
FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/src/proto/hedera/hedera-protobuf/src/main/proto HEDERA_PROTO_MODEL_PATH)
|
||||
FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/build/proto PROTOBINDING_PATH)
|
||||
file(MAKE_DIRECTORY ${PROTOBINDING_PATH})
|
||||
file(MAKE_DIRECTORY ${PROTOBINDING_PATH}/gradido)
|
||||
file(MAKE_DIRECTORY ${PROTOBINDING_PATH}/hedera)
|
||||
|
||||
FILE(GLOB DATAMODEL_GRADIDO_PROTOS "${GRADIDO_PROTO_MODEL_PATH}/gradido/*.proto")
|
||||
FILE(GLOB DATAMODEL_HEDERA_PROTOS "${HEDERA_PROTO_MODEL_PATH}/*.proto")
|
||||
|
||||
FOREACH(proto ${DATAMODEL_GRADIDO_PROTOS})
|
||||
FILE(TO_NATIVE_PATH ${proto} proto_native)
|
||||
get_filename_component(proto_parsed ${proto} NAME_WLE)
|
||||
FILE(TO_NATIVE_PATH ${PROTOBINDING_PATH}/gradido/${proto_parsed}.pb.h proto_parsed_native)
|
||||
|
||||
IF(${proto_native} IS_NEWER_THAN ${proto_parsed_native})
|
||||
EXECUTE_PROCESS(
|
||||
COMMAND
|
||||
${PROTOBUF_PROTOC_EXECUTABLE}
|
||||
--proto_path=${GRADIDO_PROTO_MODEL_PATH}
|
||||
--cpp_out=${PROTOBINDING_PATH}
|
||||
${proto_native}
|
||||
RESULT_VARIABLE rv
|
||||
)
|
||||
# Optional, but that can show the user if something have gone wrong with the proto generation
|
||||
IF(${rv})
|
||||
MESSAGE("Generation of data model returned ${rv} for proto ${proto_native}")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
ENDFOREACH(proto)
|
||||
|
||||
FOREACH(proto ${DATAMODEL_HEDERA_PROTOS})
|
||||
FILE(TO_NATIVE_PATH ${proto} proto_native)
|
||||
get_filename_component(proto_parsed ${proto} NAME_WLE)
|
||||
FILE(TO_NATIVE_PATH ${PROTOBINDING_PATH}/hedera/${proto_parsed}.pb.h proto_parsed_native)
|
||||
IF(${proto_native} IS_NEWER_THAN ${proto_parsed_native})
|
||||
EXECUTE_PROCESS(
|
||||
COMMAND
|
||||
${PROTOBUF_PROTOC_EXECUTABLE}
|
||||
--plugin=protoc-gen-grpc=${GRPC_CPP_PLUGIN}
|
||||
--proto_path=${HEDERA_PROTO_MODEL_PATH}
|
||||
--proto_path=${GOOGLE_PROTOBUF_INCLUDES}
|
||||
--cpp_out=${PROTOBINDING_PATH}/hedera
|
||||
--grpc_out ${PROTOBINDING_PATH}/hedera
|
||||
${proto_native}
|
||||
RESULT_VARIABLE rv
|
||||
)
|
||||
# Optional, but that can show the user if something have gone wrong with the proto generation
|
||||
IF(${rv})
|
||||
MESSAGE("Generation of data model returned ${rv} for proto ${proto_native}")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDFOREACH(proto)
|
||||
|
||||
############################## include src files ###################################
|
||||
#set(MYSQL_INCLUDE_DIR "dependencies/mariadb-connector-c/include")
|
||||
|
||||
FILE(GLOB CONTROLLER "src/cpp/controller/*.cpp" "src/cpp/controller/*.h")
|
||||
@ -54,8 +121,8 @@ 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")
|
||||
FILE(GLOB PROTO_GRADIDO "${PROTOBINDING_PATH}/gradido/*.cc" "${PROTOBINDING_PATH}/gradido/*.h")
|
||||
FILE(GLOB PROTO_HEDERA "${PROTOBINDING_PATH}/hedera/*.cc" "${PROTOBINDING_PATH}/hedera/*.h")
|
||||
|
||||
# used only for test project
|
||||
FILE(GLOB TEST "src/cpp/test/*.cpp" "src/cpp/test/*.h")
|
||||
@ -103,12 +170,11 @@ 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)
|
||||
|
||||
############################## find mariadb ###################################
|
||||
find_library(MYSQL_LIBRARIES mariadb PATHS "/usr/local/lib/mariadb" REQUIRED)
|
||||
############################## config and add poco ###################################
|
||||
set(BUILD_LIB_PATH "pre_build/lib")
|
||||
set(BUILD_LIB_PATH "(/usr/local/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)
|
||||
@ -118,16 +184,8 @@ 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)
|
||||
target_link_libraries(Gradido_LoginServer gRPC::grpc++ ${PROTOBUF_LIBS} ${MYSQL_LIBRARIES} ${POCO_LIBS} sodium pthread)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
FROM gradido/login_dependencies:alpine-stage2.1 as login_server_alpine_debug
|
||||
FROM gradido/login_dependencies:alpine-debug-1 as login_server_alpine_debug
|
||||
|
||||
ENV DOCKER_WORKDIR="/code"
|
||||
|
||||
@ -8,14 +8,7 @@ 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
|
||||
COPY ./scripts ./scripts
|
||||
|
||||
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
|
||||
CMD cd scripts; ./build_debug.sh; cd ..; ./build/bin/Gradido_LoginServer
|
||||
|
||||
|
||||
@ -26,6 +26,12 @@ RUN git clone https://github.com/grpc/grpc.git --branch=v1.37.0 --recursive -j4
|
||||
cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE .. && make -j$(nproc) && \
|
||||
make install
|
||||
|
||||
# abseil don't install themself correctly
|
||||
RUN cp -r grpc/third_party/abseil-cpp/absl /usr/local/include/
|
||||
|
||||
# protobuf libs missing after make install
|
||||
RUN cp grpc/build/third_party/protobuf/*.a /usr/local/lib/
|
||||
|
||||
######### BUILD poco ##############
|
||||
FROM alpine-gxx-cmake as alpine-gxx-poco
|
||||
|
||||
|
||||
@ -1,25 +1,12 @@
|
||||
#!/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
|
||||
make -j$(nproc) Gradido_LoginServer
|
||||
|
||||
chmod +x ./bin/Gradido_LoginServer
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user