@@ -73,79 +73,82 @@ ENV PATH="$VIRTUAL_ENV/bin:$PATH"
7373
7474# Pull and Install Dependencies
7575WORKDIR /dependencies
76- ENV AUTOCONF_VERSION="2.71" \
76+ ENV ABSEIL_VERSION="20250512.1" \
77+ AUTOCONF_VERSION="2.71" \
7778 AWS_SDK_VERSION="1.11.336" \
7879 CMAKE_VERSION="v3.28.5" \
7980 FAISS_VERSION="v1.9.0" \
81+ GRPC_VERSION="v1.75.1" \
82+ GTEST_VERSION="52eb8108c5bdec04579160ae17225d66034bd723" \
83+ PROTOBUF_VERSION="74211c0dfc2777318ab53c2cd2c317a2ef9012de" \
8084 LIBEDIT_VERSION="20230828-3.1" \
8185 OPENCV_VERSION="4.9.0" \
8286 PEG_VERSION="0.1.19" \
8387 TILEDB_VERSION="2.14.1" \
84- VALIJSON_VERSION="v0.6" \
85- GRPC_VERSION="v1.73.0"
88+ VALIJSON_VERSION="v0.6"
8689
8790# CMAKE
8891# hadolint ignore=DL3003,SC2086
8992RUN git clone --branch ${CMAKE_VERSION} https://github.com/Kitware/CMake.git /dependencies/CMake && \
9093 cd /dependencies/CMake && ./bootstrap && make ${BUILD_THREADS} && \
9194 make install DESTDIR=/opt/dist && make install
9295
93- # PROTOBUF & ITS DEPENDENCIES
96+ # PROTOBUF & ITS DEPENDENCIES (GOOGLETEST, ABSEIL-CPP)
9497# hadolint ignore=DL3003,SC2086
98+ RUN git clone https://github.com/google/googletest.git /dependencies/googletest && \
99+ cd /dependencies/googletest && git checkout ${GTEST_VERSION} && \
100+ mkdir build && cd build && \
101+ cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release \
102+ -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local \
103+ -DBUILD_GMOCK=ON -DCMAKE_CXX_STANDARD=17 .. && \
104+ make ${BUILD_THREADS} && make install && \
105+ git clone -b ${ABSEIL_VERSION} https://github.com/abseil/abseil-cpp.git /dependencies/abseil && \
106+ cd /dependencies/abseil && mkdir build && cd build && \
107+ cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON \
108+ -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local -DABSL_BUILD_TESTING=ON \
109+ -DABSL_USE_EXTERNAL_GOOGLETEST=ON \
110+ -DABSL_FIND_GOOGLETEST=ON -DCMAKE_CXX_STANDARD=17 .. && \
111+ make ${BUILD_THREADS} && make install && ldconfig /opt/dist/usr/local/lib && \
112+ git clone --recurse-submodules https://github.com/protocolbuffers/protobuf.git /dependencies/protobuf && \
113+ cd /dependencies/protobuf && git checkout ${PROTOBUF_VERSION} && \
114+ cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local \
115+ -DCMAKE_CXX_STANDARD=17 -Dprotobuf_BUILD_SHARED_LIBS=ON \
116+ -Dprotobuf_ABSL_PROVIDER=package \
117+ -Dprotobuf_GTEST_PROVIDER=package \
118+ -Dprotobuf_BUILD_TESTS=ON \
119+ -Dabsl_DIR=/opt/dist/usr/local/lib/cmake/absl . && \
120+ make ${BUILD_THREADS} && make install
121+ # -DBUILD_SHARED_LIBS=ON \
95122
96- # googletest
97- RUN git clone https://github.com/google/googletest.git -b v1.12.0 /dependencies/googletest && \
98- cd /dependencies/googletest && mkdir build && cd build && \
99- cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release \
100- -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local \
101- -DBUILD_GMOCK=ON -DCMAKE_CXX_STANDARD=17 .. && \
102- make ${BUILD_THREADS} && make install
103-
104- # Abseil-CPP
105- RUN git clone https://github.com/abseil/abseil-cpp.git /dependencies/abseil && \
106- cd /dependencies/abseil && mkdir build && cd build && \
107- cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON \
108- -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local -DABSL_BUILD_TESTING=ON \
109- -DABSL_USE_EXTERNAL_GOOGLETEST=ON \
110- -DABSL_FIND_GOOGLETEST=ON -DCMAKE_CXX_STANDARD=17 .. && \
111- make ${BUILD_THREADS} && make install && ldconfig /opt/dist/usr/local/lib
112-
113- # Protobuf
114- RUN git clone -b "v${PROTOBUF_VERSION}" --recurse-submodules https://github.com/protocolbuffers/protobuf.git /dependencies/protobuf && \
115- cd /dependencies/protobuf && \
116- cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local \
117- -DCMAKE_CXX_STANDARD=17 -Dprotobuf_BUILD_SHARED_LIBS=ON \
118- -Dprotobuf_ABSL_PROVIDER=package \
119- -Dprotobuf_BUILD_TESTS=ON \
120- -Dabsl_DIR=/opt/dist/usr/local/lib/cmake/absl . && \
121- make ${BUILD_THREADS} && make install
122-
123- # RUN git clone -b "v${PROTOBUF_VERSION}" --recurse-submodules https://github.com/protocolbuffers/protobuf.git /dependencies/protobuf && \
124- # cd /dependencies/protobuf/third_party/googletest && mkdir build && cd build/ && \
125- # cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release \
126- # -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local \
127- # -DBUILD_GMOCK=ON -DCMAKE_CXX_STANDARD=17 .. && \
128- # make ${BUILD_THREADS} && make install && \
129- # cd /dependencies/protobuf/third_party/abseil-cpp && mkdir build && cd build && \
130- # cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON \
131- # -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local -DABSL_BUILD_TESTING=ON \
132- # -DABSL_USE_EXTERNAL_GOOGLETEST=ON \
133- # -DABSL_FIND_GOOGLETEST=ON -DCMAKE_CXX_STANDARD=17 .. && \
134- # make ${BUILD_THREADS} && make install && ldconfig /opt/dist/usr/local/lib && \
135- # cd /dependencies/protobuf && \
136- # cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local \
137- # -DCMAKE_CXX_STANDARD=17 -Dprotobuf_BUILD_SHARED_LIBS=ON \
138- # -Dprotobuf_ABSL_PROVIDER=package \
139- # -Dprotobuf_BUILD_TESTS=ON \
140- # -Dabsl_DIR=/opt/dist/usr/local/lib/cmake/absl . && \
141- # make ${BUILD_THREADS} && make install
123+ # AUTOCONF VERSION FOR NEO4J
124+ # hadolint ignore=DL3003,SC2086
125+ RUN curl -L -O http://ftpmirror.gnu.org/autoconf/autoconf-${AUTOCONF_VERSION}.tar.gz && \
126+ tar -xzf autoconf-${AUTOCONF_VERSION}.tar.gz && cd autoconf-${AUTOCONF_VERSION} && \
127+ ./configure && make ${BUILD_THREADS} && make install DESTDIR=/opt/dist && make install
142128
143129# gRPC
144- RUN git clone -b ${GRPC_VERSION} https://github.com/grpc/grpc && \
145- cd grpc && \
146- git submodule update --init && mkdir -p cmake/build && cd cmake/build && \
147- cmake -DCMAKE_CXX_STANDARD=17 -DgRPC_INSTALL=ON ../.. && \
148- make ${BUILD_THREADS} && make install
130+ RUN ldconfig && git clone -b ${GRPC_VERSION} --depth 1 --recursive https://github.com/grpc/grpc /dependencies/grpc && \
131+ cd /dependencies/grpc && \
132+ mkdir -p cmake/build && cd cmake/build && \
133+ cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON \
134+ -DCMAKE_CXX_STANDARD=17 -DgRPC_INSTALL=ON -DgRPC_BUILD_TESTS=OFF \
135+ -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local \
136+ -DgRPC_ABSL_PROVIDER=package \
137+ -DgRPC_PROTOBUF_PROVIDER=package \
138+ # -DgRPC_CARES_PROVIDER=module \
139+ # -DgRPC_RE2_PROVIDER=module \
140+ # -DgRPC_SSL_PROVIDER=module \
141+ # -DgRPC_ZLIB_PROVIDER=module \
142+ # -DgRPC_BUILD_GRPC_CPP_PLUGIN=ON \
143+ # -DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF \
144+ # -DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF \
145+ # -DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF \
146+ # -DgRPC_BUILD_GRPC_PYTHON_PLUGIN=ON \
147+ # -DgRPC_BUILD_GRPC_CSHARP_PLUGIN=OFF \
148+ # -DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF \
149+ ../.. && \
150+ cmake --build . -- -j && cmake --install .
151+ # make ${BUILD_THREADS} && make install
149152
150153# OPENCV
151154# hadolint ignore=DL3003,SC2086
@@ -186,9 +189,9 @@ RUN curl -L -O https://github.com/TileDB-Inc/TileDB/archive/refs/tags/${TILEDB_V
186189
187190# AUTOCONF VERSION FOR NEO4J
188191# hadolint ignore=DL3003,SC2086
189- RUN curl -O https://ftp.gnu.org/gnu/autoconf/autoconf-${AUTOCONF_VERSION}.tar.xz && \
190- tar -xf autoconf-${AUTOCONF_VERSION}.tar.xz && cd autoconf-${AUTOCONF_VERSION} && \
191- ./configure && make ${BUILD_THREADS} && make install DESTDIR=/opt/dist && make install
192+ # RUN curl -O https://ftp.gnu.org/gnu/autoconf/autoconf-${AUTOCONF_VERSION}.tar.xz && \
193+ # tar -xf autoconf-${AUTOCONF_VERSION}.tar.xz && cd autoconf-${AUTOCONF_VERSION} && \
194+ # ./configure && make ${BUILD_THREADS} && make install DESTDIR=/opt/dist && make install
192195
193196# LIB-OMNI FOR NEO4J QUERY HANDLER
194197# hadolint ignore=DL3003,SC2086
@@ -295,15 +298,16 @@ RUN apt-get update -y && apt-get upgrade -y && \
295298 python3 -m pip install --no-cache-dir "numpy>=${NUMPY_MIN_VERSION},<2.0.0" "protobuf==6.${PROTOBUF_VERSION}" \
296299 "coverage>=7.3.1" "cryptography>=44.0.1"
297300
298- # COVERAGE TESTING
299301WORKDIR /vdms
302+
303+ # COVERAGE TESTING
300304# hadolint ignore=DL3008,SC2086
301305RUN if [ "${BUILD_COVERAGE}" = "ON" ]; then \
302306 apt-get update -y ; \
303307 apt-get install -y --no-install-suggests --no-install-recommends gdb ; \
304308 apt-get clean ; \
305309 rm -rf /var/lib/apt/lists/* ; \
306- python3 -m pip install --no-cache-dir "gcovr>=7.0 " ; \
310+ python3 -m pip install --no-cache-dir "gcovr==8.4 " ; \
307311 curl -L -o /vdms/minio https://dl.min.io/server/minio/release/linux-amd64/minio ; \
308312 chmod +x /vdms/minio ; \
309313 mkdir -p /vdms/minio_files/minio-bucket ; \
0 commit comments