Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F3377417
D3198.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
12 KB
Referenced Files
None
Subscribers
None
D3198.diff
View Options
diff --git a/services/backup/docker-base/Dockerfile b/services/backup/docker-base/Dockerfile
--- a/services/backup/docker-base/Dockerfile
+++ b/services/backup/docker-base/Dockerfile
@@ -13,5 +13,6 @@
RUN cd /
RUN /transferred/install_aws_sdk.sh
+RUN /transferred/install_folly.sh
CMD /bin/bash
diff --git a/services/backup/docker-base/contents/install_aws_sdk.sh b/services/backup/docker-base/contents/install_aws_sdk.sh
--- a/services/backup/docker-base/contents/install_aws_sdk.sh
+++ b/services/backup/docker-base/contents/install_aws_sdk.sh
@@ -2,10 +2,9 @@
set -e
-if [[ -d /usr/lib/aws-sdk-cpp ]]
-then
- echo "aws-sdk already exists, skipping installation(if the installation seems to be broken, remove this container/image and recreate it)..."
- exit 0;
+if [[ -d /usr/lib/aws-sdk-cpp ]]; then
+ echo "aws-sdk already exists, skipping installation(if the installation seems to be broken, remove this container/image and recreate it)..."
+ exit 0;
fi
pushd /usr/lib
diff --git a/services/backup/docker-base/contents/install_folly.sh b/services/backup/docker-base/contents/install_folly.sh
new file mode 100755
--- /dev/null
+++ b/services/backup/docker-base/contents/install_folly.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+set -e
+
+pushd /usr/lib
+
+git clone https://github.com/facebook/folly.git --branch v2020.01.13.00 --single-branch
+git clone https://github.com/google/glog.git --branch v0.4.0 --single-branch
+git clone https://github.com/google/double-conversion.git --branch v3.1.5 --single-branch
+
+popd # /usr/lib
diff --git a/services/backup/docker-server/Dockerfile b/services/backup/docker-server/Dockerfile
--- a/services/backup/docker-server/Dockerfile
+++ b/services/backup/docker-server/Dockerfile
@@ -1,4 +1,4 @@
-FROM commapp/backup-base:1.0
+FROM commapp/backup-base:1.1
ARG COMM_TEST_SERVICES
ARG COMM_SERVICES_DEV_MODE
diff --git a/services/backup/docker-server/contents/build_server.sh b/services/backup/docker-server/contents/build_server.sh
--- a/services/backup/docker-server/contents/build_server.sh
+++ b/services/backup/docker-server/contents/build_server.sh
@@ -2,8 +2,19 @@
set -e
+# folly hack - https://github.com/facebook/folly/pull/1231
+sed -i 's/#if __has_include(<demangle.h>)/#if __has_include(<Demangle.h>)/g' /usr/lib/folly/folly/detail/Demangle.h
+
pushd transferred/server
+rm -rf lib
+mkdir lib
+pushd lib
+ln -s /usr/lib/folly
+ln -s /usr/lib/glog
+ln -s /usr/lib/double-conversion
+popd # lib
+
rm -rf _generated
mkdir _generated
diff --git a/services/backup/docker-server/contents/server/CMakeLists.txt b/services/backup/docker-server/contents/server/CMakeLists.txt
--- a/services/backup/docker-server/contents/server/CMakeLists.txt
+++ b/services/backup/docker-server/contents/server/CMakeLists.txt
@@ -10,45 +10,29 @@
set(CMAKE_CXX_STANDARD 17)
+set(BUILD_TESTING OFF CACHE BOOL "Turn off tests" FORCE)
+set(WITH_GTEST "Use Google Test" OFF)
+
# FIND LIBS
-set(protobuf_MODULE_COMPATIBLE TRUE)
-find_package(Protobuf CONFIG REQUIRED)
-message(STATUS "Using protobuf ${Protobuf_VERSION}")
-
-set(_PROTOBUF_LIBPROTOBUF protobuf::libprotobuf)
-set(_PROTOBUF_PROTOC $<TARGET_FILE:protobuf::protoc>)
-
-# gRPC building parameters
-set(gRPC_BUILD_CSHARP_EXT OFF)
-set(gRPC_SSL_PROVIDER "package" CACHE STRING "SSL library provider")
-# Disable unused plugins
-set(gRPC_BUILD_GRPC_PHP_PLUGIN OFF)
-set(gRPC_BUILD_GRPC_RUBY_PLUGIN OFF)
-set(gRPC_BUILD_GRPC_PYTHON_PLUGIN OFF)
-set(gRPC_BUILD_GRPC_CSHARP_PLUGIN OFF)
+include(./cmake-components/grpc.cmake)
+include(./cmake-components/folly.cmake)
+add_subdirectory(./lib/glog)
+find_package(AWSSDK REQUIRED COMPONENTS core dynamodb)
+find_package(Boost 1.40 COMPONENTS program_options REQUIRED)
+
+# FIND FILES
+file(GLOB DOUBLE_CONVERSION_SOURCES "./lib/double-conversion/double-conversion/*.cc")
+
if ($ENV{COMM_TEST_SERVICES} MATCHES 1)
add_compile_definitions(COMM_TEST_SERVICES)
endif()
-# Find gRPC installation
-# Looks for gRPCConfig.cmake file installed by gRPC's cmake installation.
-find_package(gRPC CONFIG REQUIRED)
-message(STATUS "Using gRPC ${gRPC_VERSION}")
-
-set(_GRPC_GRPCPP gRPC::grpc++)
-set(_GRPC_CPP_PLUGIN_EXECUTABLE $<TARGET_FILE:gRPC::grpc_cpp_plugin>)
-
-set(BUILD_TESTING OFF CACHE BOOL "Turn off tests" FORCE)
-
-find_package(AWSSDK REQUIRED COMPONENTS core dynamodb)
-
-find_package(Boost 1.40 COMPONENTS program_options REQUIRED)
-
file(GLOB GENERATED_CODE "./_generated/*.cc")
set(DEV_SOURCE_CODE "")
set(DEV_HEADERS_PATH "")
if ($ENV{COMM_SERVICES_DEV_MODE} MATCHES 1)
+ add_compile_definitions(COMM_SERVICES_DEV_MODE)
file(GLOB DEV_SOURCE_CODE "./dev/*.cpp" "./src/*.dev.cpp")
set(DEV_HEADERS_PATH "./dev")
endif()
@@ -68,29 +52,32 @@
./src
./src/DatabaseEntities
./_generated
+ ${FOLLY_INCLUDES}
+ ./lib/double-conversion
${Boost_INCLUDE_DIR}
${DEV_HEADERS_PATH}
)
-set(
- LIBS
-
- ${_GRPC_GRPCPP}
- ${_PROTOBUF_LIBPROTOBUF}
- gRPC::grpc++_reflection
- ${AWSSDK_LINK_LIBRARIES}
- ${Boost_LIBRARIES}
-)
-
-#SERVER
+# SERVER
add_executable(
backup
${GENERATED_CODE}
+ ${DOUBLE_CONVERSION_SOURCES}
+ ${FOLLY_SOURCES}
${SOURCE_CODE}
)
+set(
+ LIBS
+
+ ${GRPC_LIBS}
+ ${AWSSDK_LINK_LIBRARIES}
+ ${Boost_LIBRARIES}
+ glog::glog
+)
+
target_link_libraries(
backup
@@ -118,6 +105,8 @@
runTests
${GENERATED_CODE}
+ ${DOUBLE_CONVERSION_SOURCES}
+ ${FOLLY_SOURCES}
${SOURCE_CODE}
${TEST_CODE}
)
diff --git a/services/backup/docker-server/contents/server/build.sh b/services/backup/docker-server/contents/server/build.sh
--- a/services/backup/docker-server/contents/server/build.sh
+++ b/services/backup/docker-server/contents/server/build.sh
@@ -5,8 +5,7 @@
NPROC=0
NPROC=$(nproc 2> /dev/null || echo 1)
-if [[ $NPROC -eq 1 ]]
-then
+if [[ $NPROC -eq 1 ]]; then
NPROC=$(sysctl -n hw.physicalcpu 2> /dev/null || echo 1)
fi
diff --git a/services/backup/docker-server/contents/server/cmake-components/folly.cmake b/services/backup/docker-server/contents/server/cmake-components/folly.cmake
new file mode 100644
--- /dev/null
+++ b/services/backup/docker-server/contents/server/cmake-components/folly.cmake
@@ -0,0 +1,54 @@
+add_definitions(
+ -DFOLLY_NO_CONFIG=1
+ -DFOLLY_HAVE_CLOCK_GETTIME=1
+ -DFOLLY_HAVE_MEMRCHR=1
+ -DFOLLY_USE_LIBCPP=0
+ -DFOLLY_MOBILE=0
+)
+
+set(
+ FOLLY_SOURCES
+
+ ./lib/folly/folly/detail/Futex.cpp
+ ./lib/folly/folly/synchronization/ParkingLot.cpp
+ ./lib/folly/folly/lang/SafeAssert.cpp
+ ./lib/folly/folly/FileUtil.cpp
+ ./lib/folly/folly/Subprocess.cpp
+ ./lib/folly/folly/File.cpp
+ ./lib/folly/folly/Format.cpp
+ ./lib/folly/folly/Conv.cpp
+ ./lib/folly/folly/io/IOBuf.cpp
+ ./lib/folly/folly/memory/detail/MallocImpl.cpp
+ ./lib/folly/folly/ScopeGuard.cpp
+ ./lib/folly/folly/hash/SpookyHashV2.cpp
+ ./lib/folly/folly/io/IOBufQueue.cpp
+ ./lib/folly/folly/lang/Assume.cpp
+ ./lib/folly/folly/String.cpp
+ ./lib/folly/folly/portability/SysUio.cpp
+ ./lib/folly/folly/net/NetOps.cpp
+ ./lib/folly/folly/synchronization/Hazptr.cpp
+ ./lib/folly/folly/detail/ThreadLocalDetail.cpp
+ ./lib/folly/folly/SharedMutex.cpp
+ ./lib/folly/folly/concurrency/CacheLocality.cpp
+ ./lib/folly/folly/detail/StaticSingletonManager.cpp
+ ./lib/folly/folly/executors/ThreadPoolExecutor.cpp
+ ./lib/folly/folly/executors/GlobalThreadPoolList.cpp
+ ./lib/folly/folly/Demangle.cpp
+ ./lib/folly/folly/synchronization/AsymmetricMemoryBarrier.cpp
+ ./lib/folly/folly/io/async/Request.cpp
+ ./lib/folly/folly/detail/MemoryIdler.cpp
+ ./lib/folly/folly/detail/AtFork.cpp
+ ./lib/folly/folly/Executor.cpp
+ ./lib/folly/folly/lang/CString.cpp
+ ./lib/folly/folly/portability/SysMembarrier.cpp
+ ./lib/folly/folly/container/detail/F14Table.cpp
+ ./lib/folly/folly/detail/UniqueInstance.cpp
+ ./lib/folly/folly/executors/QueuedImmediateExecutor.cpp
+ ./lib/folly/folly/memory/MallctlHelper.cpp
+)
+
+set(
+ FOLLY_INCLUDES
+
+ ./lib/folly
+)
diff --git a/services/backup/docker-server/contents/server/cmake-components/grpc.cmake b/services/backup/docker-server/contents/server/cmake-components/grpc.cmake
new file mode 100644
--- /dev/null
+++ b/services/backup/docker-server/contents/server/cmake-components/grpc.cmake
@@ -0,0 +1,31 @@
+# protobuf
+set(protobuf_MODULE_COMPATIBLE TRUE)
+find_package(Protobuf CONFIG REQUIRED)
+message(STATUS "Using protobuf ${Protobuf_VERSION}")
+
+set(_PROTOBUF_LIBPROTOBUF protobuf::libprotobuf)
+set(_PROTOBUF_PROTOC $<TARGET_FILE:protobuf::protoc>)
+
+# gRPC
+set(gRPC_BUILD_CSHARP_EXT OFF)
+set(gRPC_SSL_PROVIDER "package" CACHE STRING "SSL library provider")
+# Disable unused plugins
+set(gRPC_BUILD_GRPC_PHP_PLUGIN OFF)
+set(gRPC_BUILD_GRPC_RUBY_PLUGIN OFF)
+set(gRPC_BUILD_GRPC_PYTHON_PLUGIN OFF)
+set(gRPC_BUILD_GRPC_CSHARP_PLUGIN OFF)
+
+# Find gRPC installation
+find_package(gRPC CONFIG REQUIRED)
+message(STATUS "Using gRPC ${gRPC_VERSION}")
+
+set(_GRPC_GRPCPP gRPC::grpc++)
+set(_GRPC_CPP_PLUGIN_EXECUTABLE $<TARGET_FILE:gRPC::grpc_cpp_plugin>)
+
+set(
+ GRPC_LIBS
+
+ ${_GRPC_GRPCPP}
+ ${_PROTOBUF_LIBPROTOBUF}
+ gRPC::grpc++_reflection
+)
diff --git a/services/base-image/contents/install_grpc.sh b/services/base-image/contents/install_grpc.sh
--- a/services/base-image/contents/install_grpc.sh
+++ b/services/base-image/contents/install_grpc.sh
@@ -4,10 +4,9 @@
echo "installing grpc..."
-if [[ -d /usr/lib/grpc ]]
-then
- echo "grpc already exists, skipping installation(if the installation seems to be broken, remove this container/image and recreate it)..."
- exit 0;
+if [[ -d /usr/lib/grpc ]]; then
+ echo "grpc already exists, skipping installation(if the installation seems to be broken, remove this container/image and recreate it)..."
+ exit 0;
fi
pushd /usr/lib
diff --git a/services/blob/docker-base/Dockerfile b/services/blob/docker-base/Dockerfile
--- a/services/blob/docker-base/Dockerfile
+++ b/services/blob/docker-base/Dockerfile
@@ -1,8 +1,18 @@
-FROM commapp/backup-base:1.0
+FROM commapp/services-base:1.0
+
+ENV SHELL=/bin/bash
COPY services/blob/docker-base/contents /transferred
-RUN apt-get update && apt-get install -y libssl-dev && rm -rf /var/lib/apt/lists/*
+RUN apt-get update && apt-get install -y \
+ libcurl4-openssl-dev \
+ libssl-dev \
+ uuid-dev \
+ zlib1g-dev \
+ && rm -rf /var/lib/apt/lists/*
+
+RUN cd /
+RUN /transferred/install_aws_sdk.sh
RUN /transferred/install_folly.sh
CMD /bin/bash
diff --git a/services/backup/docker-base/contents/install_aws_sdk.sh b/services/blob/docker-base/contents/install_aws_sdk.sh
copy from services/backup/docker-base/contents/install_aws_sdk.sh
copy to services/blob/docker-base/contents/install_aws_sdk.sh
--- a/services/backup/docker-base/contents/install_aws_sdk.sh
+++ b/services/blob/docker-base/contents/install_aws_sdk.sh
@@ -2,10 +2,9 @@
set -e
-if [[ -d /usr/lib/aws-sdk-cpp ]]
-then
- echo "aws-sdk already exists, skipping installation(if the installation seems to be broken, remove this container/image and recreate it)..."
- exit 0;
+if [[ -d /usr/lib/aws-sdk-cpp ]]; then
+ echo "aws-sdk already exists, skipping installation(if the installation seems to be broken, remove this container/image and recreate it)..."
+ exit 0;
fi
pushd /usr/lib
diff --git a/services/blob/docker-server/Dockerfile b/services/blob/docker-server/Dockerfile
--- a/services/blob/docker-server/Dockerfile
+++ b/services/blob/docker-server/Dockerfile
@@ -1,4 +1,4 @@
-FROM commapp/blob-base:1.1
+FROM commapp/blob-base:1.2
ARG COMM_SERVICES_DEV_MODE
diff --git a/services/blob/docker-server/contents/server/build.sh b/services/blob/docker-server/contents/server/build.sh
--- a/services/blob/docker-server/contents/server/build.sh
+++ b/services/blob/docker-server/contents/server/build.sh
@@ -5,8 +5,7 @@
NPROC=0
NPROC=$(nproc 2> /dev/null || echo 1)
-if [[ $NPROC -eq 1 ]]
-then
+if [[ $NPROC -eq 1 ]]; then
NPROC=$(sysctl -n hw.physicalcpu 2> /dev/null || echo 1)
fi
diff --git a/services/docker-compose.yml b/services/docker-compose.yml
--- a/services/docker-compose.yml
+++ b/services/docker-compose.yml
@@ -19,7 +19,7 @@
build:
dockerfile: services/backup/docker-base/Dockerfile
context: ../
- image: commapp/backup-base:1.0
+ image: commapp/backup-base:1.1
backup-server:
build:
dockerfile: services/backup/docker-server/Dockerfile
@@ -38,7 +38,7 @@
build:
dockerfile: services/blob/docker-base/Dockerfile
context: ../
- image: commapp/blob-base:1.1
+ image: commapp/blob-base:1.2
blob-server:
build:
dockerfile: services/blob/docker-server/Dockerfile
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Nov 28, 5:34 AM (22 h, 4 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2592932
Default Alt Text
D3198.diff (12 KB)
Attached To
Mode
D3198: [services] Move folly from Blob to Backup base
Attached
Detach File
Event Timeline
Log In to Comment