mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-12 23:35:50 +00:00
fix bug, update dockerfiles to use dependencies without grpc
This commit is contained in:
parent
870ead82fe
commit
dedcebdb95
@ -38,7 +38,7 @@ services:
|
||||
- ./login_server/dependencies:/code/dependencies
|
||||
- ./login_server/scripts:/code/scripts
|
||||
- ./configs/login_server:/etc/grd_login
|
||||
- login_build_3:/code/build
|
||||
- login_build_3.1:/code/build
|
||||
|
||||
|
||||
#########################################################
|
||||
@ -100,4 +100,4 @@ services:
|
||||
|
||||
volumes:
|
||||
frontend_node_modules:
|
||||
login_build_3:
|
||||
login_build_3.1:
|
||||
|
||||
@ -80,6 +80,7 @@ services:
|
||||
depends_on:
|
||||
- community-server
|
||||
- login-server
|
||||
- frontend
|
||||
ports:
|
||||
- 80:80
|
||||
|
||||
|
||||
@ -30,22 +30,16 @@ include_directories(
|
||||
find_package(Protobuf REQUIRED)
|
||||
include_directories(${Protobuf_INCLUDE_DIRS})
|
||||
|
||||
FIND_PACKAGE(gRPC CONFIG REQUIRED)
|
||||
find_program(GRPC_CPP_PLUGIN grpc_cpp_plugin)
|
||||
|
||||
set(PROTOBUF_LIBS protobuf::libprotobuf protobuf::libprotobuf-lite protobuf::libprotoc)
|
||||
|
||||
############################## 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)
|
||||
@ -71,31 +65,6 @@ FOREACH(proto ${DATAMODEL_GRADIDO_PROTOS})
|
||||
|
||||
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}")
|
||||
ELSE()
|
||||
MESSAGE("Parsed: src/proto/hedera/hedera-protobuf/src/main/proto/${proto_parsed}.proto")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDFOREACH(proto)
|
||||
|
||||
############################## parse cpsp Files ####################################
|
||||
FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/src/cpsp GRADIDO_CPSP_PAGE_SRC_PATH)
|
||||
FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/build/http_pages GRADIDO_HTTP_PAGES_PATH)
|
||||
@ -153,7 +122,6 @@ 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 "${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")
|
||||
@ -204,81 +172,83 @@ set(POCO_LIBS ${POCO_FOUNDATION_LIB} ${POCO_UTIL_LIB} ${POCO_NET_SSL_LIB} ${POCO
|
||||
|
||||
############################## build login server ###################################
|
||||
|
||||
target_link_libraries(Gradido_LoginServer gRPC::grpc++ ${PROTOBUF_LIBS} ${MYSQL_LIBRARIES} ${POCO_LIBS} sodium pthread)
|
||||
target_link_libraries(Gradido_LoginServer ${PROTOBUF_LIBS} ${MYSQL_LIBRARIES} ${POCO_LIBS} sodium pthread)
|
||||
|
||||
############################## build login server test ###################################
|
||||
project(Gradido_LoginServer_Test C CXX)
|
||||
IF(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
project(Gradido_LoginServer_Test C CXX)
|
||||
|
||||
enable_testing()
|
||||
enable_testing()
|
||||
|
||||
option(COLLECT_COVERAGE_DATA "Use cov to collect coverage informations" OFF)
|
||||
set(COVERAGE_TOOL "Coverage Tool (gcovr|lcov|fastcov)" CACHE STRING "gcovr")
|
||||
option(COLLECT_COVERAGE_DATA "Use cov to collect coverage informations" OFF)
|
||||
set(COVERAGE_TOOL "Coverage Tool (gcovr|lcov|fastcov)" CACHE STRING "gcovr")
|
||||
|
||||
|
||||
if(COLLECT_COVERAGE_DATA)
|
||||
|
||||
include(cmake/CodeCoverage.cmake)
|
||||
append_coverage_compiler_flags()
|
||||
set(EXCLUDE_FOR_HTML_COV
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/build/proto/*"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/dependencies/*"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/src/cpp/test/*"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/googletest/googletest/include/gtest/internal/*"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/googletest/googletest/src/"
|
||||
)
|
||||
if("${COVERAGE_TOOL}" STREQUAL "gcovr")
|
||||
setup_target_for_coverage_gcovr_html(
|
||||
NAME coverage
|
||||
EXECUTABLE Gradido_LoginServer_Test
|
||||
EXCLUDE ${EXCLUDE_FOR_HTML_COV}
|
||||
GCOVR_ADDITIONAL_ARGS "--txt "
|
||||
#DEPENDENCIES lib/libmariadb.so.3
|
||||
if(COLLECT_COVERAGE_DATA)
|
||||
|
||||
include(cmake/CodeCoverage.cmake)
|
||||
append_coverage_compiler_flags()
|
||||
set(EXCLUDE_FOR_HTML_COV
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/build/proto/*"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/dependencies/*"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/src/cpp/test/*"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/googletest/googletest/include/gtest/internal/*"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/googletest/googletest/src/"
|
||||
)
|
||||
endif()
|
||||
if("${COVERAGE_TOOL}" STREQUAL "gcovr")
|
||||
setup_target_for_coverage_gcovr_html(
|
||||
NAME coverage
|
||||
EXECUTABLE Gradido_LoginServer_Test
|
||||
EXCLUDE ${EXCLUDE_FOR_HTML_COV}
|
||||
GCOVR_ADDITIONAL_ARGS "--txt "
|
||||
#DEPENDENCIES lib/libmariadb.so.3
|
||||
)
|
||||
endif()
|
||||
|
||||
set(EXCLUDE_FOR_COV
|
||||
${EXCLUDE_FOR_HTML_COV}
|
||||
"/usr/include/*"
|
||||
)
|
||||
if("${COVERAGE_TOOL}" STREQUAL "lcov")
|
||||
setup_target_for_coverage_lcov(
|
||||
NAME coverage
|
||||
EXECUTABLE Gradido_LoginServer_Test
|
||||
EXCLUDE "${EXCLUDE_FOR_COV}"
|
||||
#DEPENDENCIES lib/libmariadb.so.3
|
||||
set(EXCLUDE_FOR_COV
|
||||
${EXCLUDE_FOR_HTML_COV}
|
||||
"/usr/include/*"
|
||||
)
|
||||
if("${COVERAGE_TOOL}" STREQUAL "lcov")
|
||||
setup_target_for_coverage_lcov(
|
||||
NAME coverage
|
||||
EXECUTABLE Gradido_LoginServer_Test
|
||||
EXCLUDE "${EXCLUDE_FOR_COV}"
|
||||
#DEPENDENCIES lib/libmariadb.so.3
|
||||
)
|
||||
endif()
|
||||
|
||||
if("${COVERAGE_TOOL}" STREQUAL "fastcov")
|
||||
setup_target_for_coverage_fastcov(
|
||||
NAME coverage # New target name
|
||||
EXECUTABLE Gradido_LoginServer_Test -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR
|
||||
#BASE_DIRECTORY "coverage" # Base directory for report
|
||||
# (defaults to PROJECT_SOURCE_DIR)
|
||||
EXCLUDE "${EXCLUDE_FOR_COV}" # Patterns to exclude.
|
||||
NO_DEMANGLE # Don't demangle C++ symbols
|
||||
# even if c++filt is found
|
||||
SKIP_HTML # Don't create html report
|
||||
)
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
if("${COVERAGE_TOOL}" STREQUAL "fastcov")
|
||||
setup_target_for_coverage_fastcov(
|
||||
NAME coverage # New target name
|
||||
EXECUTABLE Gradido_LoginServer_Test -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR
|
||||
#BASE_DIRECTORY "coverage" # Base directory for report
|
||||
# (defaults to PROJECT_SOURCE_DIR)
|
||||
EXCLUDE "${EXCLUDE_FOR_COV}" # Patterns to exclude.
|
||||
NO_DEMANGLE # Don't demangle C++ symbols
|
||||
# even if c++filt is found
|
||||
SKIP_HTML # Don't create html report
|
||||
)
|
||||
#_TEST_BUILD
|
||||
|
||||
add_subdirectory("googletest")
|
||||
|
||||
add_executable(Gradido_LoginServer_Test ${LOCAL_SRCS} ${LOCAL_TEST_SRC})
|
||||
target_compile_definitions(Gradido_LoginServer_Test PUBLIC "_TEST_BUILD")
|
||||
|
||||
target_link_libraries(Gradido_LoginServer_Test ${GRPC_LIBS} )
|
||||
|
||||
if(WIN32)
|
||||
target_link_libraries(Gradido_LoginServer_Test ${CONAN_LIBS} )
|
||||
#TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test optimized ${MYSQL_LIBRARIES} Shlwapi)
|
||||
#TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test debug ${COMPILED_MARIADB_CLIENT_DEBUG} Shlwapi)
|
||||
#TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test debug ${GRPC_LIBS} ${PROTOBUF_DEBUG_LIBS})
|
||||
else()
|
||||
target_link_libraries(Gradido_LoginServer_Test ${PROTOBUF_LIBS} ${MYSQL_LIBRARIES} ${POCO_LIBS} sodium pthread gtest)
|
||||
endif()
|
||||
|
||||
endif()
|
||||
#_TEST_BUILD
|
||||
|
||||
add_subdirectory("googletest")
|
||||
|
||||
add_executable(Gradido_LoginServer_Test ${LOCAL_SRCS} ${LOCAL_TEST_SRC})
|
||||
target_compile_definitions(Gradido_LoginServer_Test PUBLIC "_TEST_BUILD")
|
||||
|
||||
target_link_libraries(Gradido_LoginServer_Test ${GRPC_LIBS} )
|
||||
|
||||
if(WIN32)
|
||||
target_link_libraries(Gradido_LoginServer_Test ${CONAN_LIBS} )
|
||||
#TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test optimized ${MYSQL_LIBRARIES} Shlwapi)
|
||||
#TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test debug ${COMPILED_MARIADB_CLIENT_DEBUG} Shlwapi)
|
||||
#TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test debug ${GRPC_LIBS} ${PROTOBUF_DEBUG_LIBS})
|
||||
else()
|
||||
target_link_libraries(Gradido_LoginServer_Test gRPC::grpc++ ${PROTOBUF_LIBS} ${MYSQL_LIBRARIES} ${POCO_LIBS} sodium pthread gtest)
|
||||
endif()
|
||||
|
||||
add_test(NAME main COMMAND Gradido_LoginServer_Test)
|
||||
add_test(NAME main COMMAND Gradido_LoginServer_Test)
|
||||
ENDIF()
|
||||
@ -2,7 +2,7 @@
|
||||
#########################################################################################################
|
||||
# Prepare debug
|
||||
#########################################################################################################
|
||||
FROM gradido/login_dependencies:gcc9-debug-1 as prepare_debug
|
||||
FROM gradido/login_dependencies:gcc9-debug-3 as prepare_debug
|
||||
|
||||
ENV DOCKER_WORKDIR="/code"
|
||||
WORKDIR ${DOCKER_WORKDIR}
|
||||
@ -83,7 +83,7 @@ ENTRYPOINT ["build/bin/Gradido_LoginServer"]
|
||||
#########################################################################################################
|
||||
# Build release
|
||||
#########################################################################################################
|
||||
FROM gradido/login_dependencies:alpine-release-2 as release
|
||||
FROM gradido/login_dependencies:alpine-release-3 as release
|
||||
|
||||
ENV DOCKER_WORKDIR="/code"
|
||||
WORKDIR ${DOCKER_WORKDIR}
|
||||
@ -118,20 +118,13 @@ WORKDIR "/usr/bin"
|
||||
COPY --from=release /code/build/bin/Gradido_LoginServer /usr/bin/
|
||||
|
||||
COPY --from=release /usr/local/lib/mariadb/libmariadb.so.3 /usr/local/lib/
|
||||
COPY --from=release /usr/local/lib/libPoco* /usr/local/lib/
|
||||
COPY --from=release /usr/lib/libsodium.so.23 /usr/lib/
|
||||
COPY --from=release /usr/lib/libstdc++.so.6 /usr/lib/
|
||||
COPY --from=release /usr/lib/libgcc_s.so.1 /usr/lib/
|
||||
COPY --from=release /usr/local/lib/libPoco* /usr/local/lib/
|
||||
COPY --from=release /usr/local/lib/libproto* /usr/local/lib/
|
||||
COPY --from=release /usr/lib/libsodium.so.23 /usr/lib/
|
||||
COPY --from=release /usr/lib/libstdc++.so.6 /usr/lib/
|
||||
COPY --from=release /usr/lib/libgcc_s.so.1 /usr/lib/
|
||||
|
||||
|
||||
RUN chmod +x /usr/bin/Gradido_LoginServer
|
||||
ENTRYPOINT ["/usr/bin/Gradido_LoginServer"]
|
||||
#CMD Gradido_LoginServer
|
||||
|
||||
#########################################################################################################
|
||||
# run release with default docker config
|
||||
#########################################################################################################
|
||||
FROM login_server as login_server_default_config
|
||||
|
||||
COPY ../configs/login_server/grd_login.properties /etc/grd_login/
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
FROM gradido/login_dependencies:alpine-debug-2 as login_server_alpine_debug
|
||||
FROM gradido/login_dependencies:alpine-debug-3 as login_server_alpine_debug
|
||||
|
||||
ENV DOCKER_WORKDIR="/code"
|
||||
|
||||
|
||||
@ -1,54 +0,0 @@
|
||||
#########################################################################################################
|
||||
# cmake
|
||||
#########################################################################################################
|
||||
FROM gcc:9 as cmake-gcc-9
|
||||
|
||||
ENV DOCKER_WORKDIR="/code"
|
||||
RUN mkdir -p ${DOCKER_WORKDIR}
|
||||
WORKDIR ${DOCKER_WORKDIR}
|
||||
|
||||
USER root
|
||||
|
||||
RUN git clone https://github.com/Kitware/CMake.git --branch=v3.19.8 \
|
||||
&& cd CMake \
|
||||
&& ./bootstrap \
|
||||
&& make -j$(nproc) \
|
||||
&& make install
|
||||
|
||||
#########################################################################################################
|
||||
# Build debug
|
||||
#########################################################################################################
|
||||
From gradido/login_dependencies:stage2 as debug
|
||||
|
||||
ENV DOCKER_WORKDIR="/code"
|
||||
|
||||
USER root
|
||||
|
||||
WORKDIR ${DOCKER_WORKDIR}
|
||||
COPY . .
|
||||
|
||||
RUN cd scripts \
|
||||
&& chmod +x ./prepare_build.sh \
|
||||
&& ./prepare_build.sh
|
||||
|
||||
RUN ./compile_pot.sh
|
||||
RUN ./unix_parse_proto.sh
|
||||
|
||||
|
||||
#########################################################################################################
|
||||
# run debug
|
||||
#########################################################################################################
|
||||
FROM debug as login_server_debug
|
||||
|
||||
ENV DOCKER_WORKDIR="/code"
|
||||
|
||||
VOLUME /var/log/grd_login
|
||||
VOLUME /code/src
|
||||
|
||||
EXPOSE 1200
|
||||
EXPOSE 1201
|
||||
WORKDIR ${DOCKER_WORKDIR}
|
||||
RUN chmod +x ./scripts/build_and_run.sh
|
||||
|
||||
CMD ./Dockerfiles/build_and_run.sh; ./build_vol/bin/Gradido_LoginServer
|
||||
|
||||
@ -2,14 +2,13 @@
|
||||
#########################################################################################################
|
||||
# Build release
|
||||
#########################################################################################################
|
||||
FROM gradido/login_dependencies:alpine-release-2 as release_default
|
||||
FROM gradido/login_dependencies:alpine-release-3 as release_default
|
||||
|
||||
ENV DOCKER_WORKDIR="/code"
|
||||
WORKDIR ${DOCKER_WORKDIR}
|
||||
|
||||
COPY ./login_server/CMakeLists.txt.lib ./CMakeLists.txt
|
||||
COPY ./login_server/src ./src
|
||||
RUN ln -s /usr/local/googletest ./googletest
|
||||
COPY ./login_server/dependencies/cmake-modules ./dependencies/cmake-modules
|
||||
COPY ./login_server/dependencies/spirit-po ./dependencies/spirit-po
|
||||
COPY ./login_server/dependencies/tinf ./dependencies/tinf
|
||||
@ -21,21 +21,20 @@ RUN git clone https://github.com/Kitware/CMake.git --branch=v3.19.8 && \
|
||||
make install
|
||||
|
||||
######### BUILD grpc ##############
|
||||
FROM gcc_9_cmake as gcc_9_grpc
|
||||
FROM gcc_9_cmake as gcc_9_protobuf
|
||||
|
||||
ARG BUILD_TYPE=Debug
|
||||
|
||||
RUN git clone https://github.com/grpc/grpc.git --branch=v1.37.0 --recursive -j4 && \
|
||||
cd grpc && \
|
||||
mkdir build && cd build && \
|
||||
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/
|
||||
RUN git clone https://github.com/protocolbuffers/protobuf.git --recursive -j4 && \
|
||||
cd protobuf && \
|
||||
./autogen.sh && \
|
||||
./configure && \
|
||||
make -j$(nproc) && \
|
||||
make install && \
|
||||
ldconfig
|
||||
|
||||
# protobuf libs missing after make install
|
||||
RUN cp grpc/build/third_party/protobuf/*.a /usr/local/lib/
|
||||
#RUN cp grpc/build/third_party/protobuf/*.a /usr/local/lib/
|
||||
|
||||
######### BUILD poco ##############
|
||||
FROM gcc_9_cmake as gcc_9_poco
|
||||
@ -74,8 +73,8 @@ COPY --from=gcc_9_cmake /usr/local/share/cmake-3.19/Modules /usr/local/share/cma
|
||||
COPY --from=gcc_9_cmake /usr/local/share/cmake-3.19/Templates /usr/local/share/cmake-3.19/Templates
|
||||
|
||||
# copy from grpc
|
||||
COPY --from=gcc_9_grpc /usr/local /usr/local
|
||||
COPY --from=gcc_9_grpc /grpc/third_party/googletest /usr/local/googletest
|
||||
COPY --from=gcc_9_protobuf /usr/local /usr/local
|
||||
COPY --from=gcc_9_protobuf /protobuf/third_party/googletest /usr/local/googletest
|
||||
|
||||
# COPY from poco
|
||||
COPY --from=gcc_9_poco /usr/local /usr/local
|
||||
|
||||
@ -15,31 +15,22 @@ RUN git clone https://github.com/Kitware/CMake.git --branch=v3.19.8 && \
|
||||
make -j$(nproc) && \
|
||||
make install
|
||||
|
||||
##### lcov #####
|
||||
FROM alpine-build as alpine-lcov
|
||||
|
||||
RUN apk add --no-cache bash perl
|
||||
|
||||
RUN git clone https://github.com/linux-test-project/lcov.git --branch=v1.15 && \
|
||||
cd lcov && \
|
||||
make install
|
||||
|
||||
######### BUILD grpc ##############
|
||||
FROM alpine-gxx-cmake as alpine-gxx-grpc
|
||||
FROM alpine-gxx-cmake as alpine-gxx-protobuf
|
||||
|
||||
ARG BUILD_TYPE=Debug
|
||||
|
||||
RUN git clone https://github.com/grpc/grpc.git --branch=v1.37.0 --recursive -j4 && \
|
||||
cd grpc && \
|
||||
mkdir build && cd build && \
|
||||
cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE .. && make -j$(nproc) && \
|
||||
make install
|
||||
RUN apk add --no-cache autoconf automake libtool curl unzip
|
||||
|
||||
# abseil don't install themself correctly
|
||||
RUN cp -r grpc/third_party/abseil-cpp/absl /usr/local/include/
|
||||
RUN git clone https://github.com/protocolbuffers/protobuf.git --recursive -j4 && \
|
||||
cd protobuf && \
|
||||
./autogen.sh && \
|
||||
./configure && \
|
||||
make -j$(nproc) && \
|
||||
make install
|
||||
|
||||
# protobuf libs missing after make install
|
||||
RUN cp grpc/build/third_party/protobuf/*.a /usr/local/lib/
|
||||
#RUN cp grpc/build/third_party/protobuf/*.a /usr/local/lib/
|
||||
|
||||
######### BUILD poco ##############
|
||||
FROM alpine-gxx-cmake as alpine-gxx-poco
|
||||
@ -76,12 +67,7 @@ COPY --from=alpine-gxx-cmake /usr/local/share/cmake-3.19/Modules /usr/local/shar
|
||||
COPY --from=alpine-gxx-cmake /usr/local/share/cmake-3.19/Templates /usr/local/share/cmake-3.19/Templates
|
||||
|
||||
# copy from grpc
|
||||
COPY --from=alpine-gxx-grpc /usr/local /usr/local
|
||||
COPY --from=alpine-gxx-grpc /grpc/third_party/googletest /usr/local/googletest
|
||||
|
||||
# copy from lcov
|
||||
COPY --from=alpine-lcov /usr/local/bin /usr/local/bin
|
||||
COPY --from=alpine-lcov /usr/local/etc/lcovrc /usr/local/etc/lcovrc
|
||||
COPY --from=alpine-gxx-protobuf /usr/local /usr/local
|
||||
|
||||
# COPY from poco
|
||||
COPY --from=alpine-gxx-poco /usr/local /usr/local
|
||||
@ -89,4 +75,10 @@ COPY --from=alpine-gxx-poco /usr/local /usr/local
|
||||
# COPY from mariadb
|
||||
COPY --from=alpine-gxx-mariadb-connector /usr/local /usr/local
|
||||
|
||||
#########################################################################################################
|
||||
# COPY Things only needed for testing
|
||||
#########################################################################################################
|
||||
FROM alpine-libs as alpine-libs-test
|
||||
|
||||
COPY --from=alpine-gxx-protobuf /protobuf/third_party/googletest /usr/local/googletest
|
||||
|
||||
|
||||
@ -1,30 +0,0 @@
|
||||
#########################################################################################################
|
||||
# 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 gradido/protoc:3.9.1
|
||||
## upload (login to docker hub on shell before):
|
||||
# docker push gradido/protoc:3.9.1
|
||||
@ -83,11 +83,11 @@ namespace model {
|
||||
|
||||
|
||||
if (mPasswordHashed) {
|
||||
insert << "INSERT INTO users (email, first_name, last_name, username, description, password, email_hash, language, group_id) VALUES(?,?,?,?,?,?,?,?);",
|
||||
insert << "INSERT INTO users (email, first_name, last_name, username, description, password, email_hash, language, group_id) VALUES(?,?,?,?,?,?,?,?,?);",
|
||||
use(mEmail), use(mFirstName), use(mLastName), use(mUsername), use(mDescription), bind(mPasswordHashed), use(mEmailHash), use(mLanguageKey), use(mGroupId);
|
||||
}
|
||||
else {
|
||||
insert << "INSERT INTO users (email, first_name, last_name, username, description, email_hash, language, group_id) VALUES(?,?,?,?,?,?,?);",
|
||||
insert << "INSERT INTO users (email, first_name, last_name, username, description, email_hash, language, group_id) VALUES(?,?,?,?,?,?,?,?);",
|
||||
use(mEmail), use(mFirstName), use(mLastName), use(mUsername), use(mDescription), use(mEmailHash), use(mLanguageKey), use(mGroupId);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user