diff --git a/Dockerfile.compute-node b/Dockerfile.compute-node index 44e13a6c73..ae330d8a20 100644 --- a/Dockerfile.compute-node +++ b/Dockerfile.compute-node @@ -67,7 +67,7 @@ RUN apt update && \ RUN wget https://gitlab.com/Oslandia/SFCGAL/-/archive/v1.3.10/SFCGAL-v1.3.10.tar.gz -O SFCGAL.tar.gz && \ echo "4e39b3b2adada6254a7bdba6d297bb28e1a9835a9f879b74f37e2dab70203232 SFCGAL.tar.gz" | sha256sum --check && \ mkdir sfcgal-src && cd sfcgal-src && tar xvzf ../SFCGAL.tar.gz --strip-components=1 -C . && \ - cmake . && make -j $(getconf _NPROCESSORS_ONLN) && \ + cmake -DCMAKE_BUILD_TYPE=Release . && make -j $(getconf _NPROCESSORS_ONLN) && \ DESTDIR=/sfcgal make install -j $(getconf _NPROCESSORS_ONLN) && \ make clean && cp -R /sfcgal/* / @@ -95,7 +95,7 @@ RUN wget https://github.com/pgRouting/pgrouting/archive/v3.4.2.tar.gz -O pgrouti mkdir pgrouting-src && cd pgrouting-src && tar xvzf ../pgrouting.tar.gz --strip-components=1 -C . && \ mkdir build && \ cd build && \ - cmake .. && \ + cmake -DCMAKE_BUILD_TYPE=Release .. && \ make -j $(getconf _NPROCESSORS_ONLN) && \ make -j $(getconf _NPROCESSORS_ONLN) install && \ echo 'trusted = true' >> /usr/local/pgsql/share/extension/pgrouting.control @@ -355,7 +355,7 @@ RUN apt-get update && \ wget https://github.com/timescale/timescaledb/archive/refs/tags/2.10.1.tar.gz -O timescaledb.tar.gz && \ echo "6fca72a6ed0f6d32d2b3523951ede73dc5f9b0077b38450a029a5f411fdb8c73 timescaledb.tar.gz" | sha256sum --check && \ mkdir timescaledb-src && cd timescaledb-src && tar xvzf ../timescaledb.tar.gz --strip-components=1 -C . && \ - ./bootstrap -DSEND_TELEMETRY_DEFAULT:BOOL=OFF -DUSE_TELEMETRY:BOOL=OFF -DAPACHE_ONLY:BOOL=ON && \ + ./bootstrap -DSEND_TELEMETRY_DEFAULT:BOOL=OFF -DUSE_TELEMETRY:BOOL=OFF -DAPACHE_ONLY:BOOL=ON -DCMAKE_BUILD_TYPE=Release && \ cd build && \ make -j $(getconf _NPROCESSORS_ONLN) && \ make install -j $(getconf _NPROCESSORS_ONLN) && \ @@ -410,7 +410,7 @@ RUN apt-get update && \ mkdir kq_imcx-src && cd kq_imcx-src && tar xvzf ../kq_imcx.tar.gz --strip-components=1 -C . && \ mkdir build && \ cd build && \ - cmake .. && \ + cmake -DCMAKE_BUILD_TYPE=Release .. && \ make -j $(getconf _NPROCESSORS_ONLN) && \ make -j $(getconf _NPROCESSORS_ONLN) install && \ echo 'trusted = true' >> /usr/local/pgsql/share/extension/kq_imcx.control @@ -432,6 +432,54 @@ RUN wget https://github.com/citusdata/pg_cron/archive/refs/tags/v1.5.2.tar.gz -O make -j $(getconf _NPROCESSORS_ONLN) install && \ echo 'trusted = true' >> /usr/local/pgsql/share/extension/pg_cron.control +######################################################################################### +# +# Layer "rdkit-pg-build" +# compile rdkit extension +# +######################################################################################### +FROM build-deps AS rdkit-pg-build +COPY --from=pg-build /usr/local/pgsql/ /usr/local/pgsql/ + +RUN apt-get update && \ + apt-get install -y \ + cmake \ + libboost-iostreams1.74-dev \ + libboost-regex1.74-dev \ + libboost-serialization1.74-dev \ + libboost-system1.74-dev \ + libeigen3-dev \ + libfreetype6-dev + +ENV PATH "/usr/local/pgsql/bin/:/usr/local/pgsql/:$PATH" +RUN wget https://github.com/rdkit/rdkit/archive/refs/tags/Release_2023_03_1.tar.gz -O rdkit.tar.gz && \ + echo "db346afbd0ba52c843926a2a62f8a38c7b774ffab37eaf382d789a824f21996c rdkit.tar.gz" | sha256sum --check && \ + mkdir rdkit-src && cd rdkit-src && tar xvzf ../rdkit.tar.gz --strip-components=1 -C . && \ + cmake \ + -D RDK_BUILD_CAIRO_SUPPORT=OFF \ + -D RDK_BUILD_INCHI_SUPPORT=ON \ + -D RDK_BUILD_AVALON_SUPPORT=ON \ + -D RDK_BUILD_PYTHON_WRAPPERS=OFF \ + -D RDK_BUILD_DESCRIPTORS3D=OFF \ + -D RDK_BUILD_FREESASA_SUPPORT=OFF \ + -D RDK_BUILD_COORDGEN_SUPPORT=ON \ + -D RDK_BUILD_MOLINTERCHANGE_SUPPORT=OFF \ + -D RDK_BUILD_YAEHMOP_SUPPORT=OFF \ + -D RDK_BUILD_STRUCTCHECKER_SUPPORT=OFF \ + -D RDK_USE_URF=OFF \ + -D RDK_BUILD_PGSQL=ON \ + -D RDK_PGSQL_STATIC=ON \ + -D PostgreSQL_CONFIG=pg_config \ + -D PostgreSQL_INCLUDE_DIR=`pg_config --includedir` \ + -D PostgreSQL_TYPE_INCLUDE_DIR=`pg_config --includedir-server` \ + -D PostgreSQL_LIBRARY_DIR=`pg_config --libdir` \ + -D RDK_INSTALL_INTREE=OFF \ + -D CMAKE_BUILD_TYPE=Release \ + . && \ + make -j $(getconf _NPROCESSORS_ONLN) && \ + make -j $(getconf _NPROCESSORS_ONLN) install && \ + echo 'trusted = true' >> /usr/local/pgsql/share/extension/rdkit.control + ######################################################################################### # # Layer "rust extensions" @@ -564,6 +612,7 @@ COPY --from=pg-hint-plan-pg-build /usr/local/pgsql/ /usr/local/pgsql/ COPY --from=kq-imcx-pg-build /usr/local/pgsql/ /usr/local/pgsql/ COPY --from=pg-cron-pg-build /usr/local/pgsql/ /usr/local/pgsql/ COPY --from=pg-pgx-ulid-build /usr/local/pgsql/ /usr/local/pgsql/ +COPY --from=rdkit-pg-build /usr/local/pgsql/ /usr/local/pgsql/ COPY pgxn/ pgxn/ RUN make -j $(getconf _NPROCESSORS_ONLN) \ @@ -637,14 +686,19 @@ COPY --from=compute-tools --chown=postgres /home/nonroot/target/release-line-deb # libgeos, libgdal, libsfcgal1, libproj and libprotobuf-c1 for PostGIS # libxml2, libxslt1.1 for xml2 # libzstd1 for zstd +# libboost*, libfreetype6, and zlib1g for rdkit RUN apt update && \ apt install --no-install-recommends -y \ gdb \ - locales \ libicu67 \ liblz4-1 \ libreadline8 \ + libboost-iostreams1.74.0 \ + libboost-regex1.74.0 \ + libboost-serialization1.74.0 \ + libboost-system1.74.0 \ libossp-uuid16 \ + libfreetype6 \ libgeos-c1v5 \ libgdal28 \ libproj19 \ @@ -654,7 +708,9 @@ RUN apt update && \ libxslt1.1 \ libzstd1 \ libcurl4-openssl-dev \ - procps && \ + locales \ + procps \ + zlib1g && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \ localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8