From b428c6ad7a92119b598d990bd5a72e6bc92065aa Mon Sep 17 00:00:00 2001 From: fcdm <128653800+fcdm@users.noreply.github.com> Date: Mon, 19 Feb 2024 01:35:30 +0000 Subject: [PATCH] dump --- Dockerfile.compute-node | 731 +------------------------------ Dockerfile.compute-node-combined | 184 ++++---- 2 files changed, 93 insertions(+), 822 deletions(-) diff --git a/Dockerfile.compute-node b/Dockerfile.compute-node index 4eb6dc91c0..2506a9c4db 100644 --- a/Dockerfile.compute-node +++ b/Dockerfile.compute-node @@ -72,703 +72,6 @@ RUN cd postgres && \ fi; \ done -######################################################################################### -# -# Layer "postgis-build" -# Build PostGIS from the upstream PostGIS mirror. -# -######################################################################################### -FROM build-deps AS postgis-build -COPY --from=pg-build /usr/local/pgsql/ /usr/local/pgsql/ -RUN apt update && \ - apt install -y cmake gdal-bin libboost-dev libboost-thread-dev libboost-filesystem-dev \ - libboost-system-dev libboost-iostreams-dev libboost-program-options-dev libboost-timer-dev \ - libcgal-dev libgdal-dev libgmp-dev libmpfr-dev libopenscenegraph-dev libprotobuf-c-dev \ - protobuf-c-compiler xsltproc - -# SFCGAL > 1.3 requires CGAL > 5.2, Bullseye's libcgal-dev is 5.2 -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 -DCMAKE_BUILD_TYPE=Release . && make -j $(getconf _NPROCESSORS_ONLN) && \ - DESTDIR=/sfcgal make install -j $(getconf _NPROCESSORS_ONLN) && \ - make clean && cp -R /sfcgal/* / - -ENV PATH "/usr/local/pgsql/bin:$PATH" - -RUN wget https://download.osgeo.org/postgis/source/postgis-3.3.3.tar.gz -O postgis.tar.gz && \ - echo "74eb356e3f85f14233791013360881b6748f78081cc688ff9d6f0f673a762d13 postgis.tar.gz" | sha256sum --check && \ - mkdir postgis-src && cd postgis-src && tar xvzf ../postgis.tar.gz --strip-components=1 -C . && \ - find /usr/local/pgsql -type f | sed 's|^/usr/local/pgsql/||' > /before.txt &&\ - ./autogen.sh && \ - ./configure --with-sfcgal=/usr/local/bin/sfcgal-config && \ - make -j $(getconf _NPROCESSORS_ONLN) install && \ - cd extensions/postgis && \ - make clean && \ - make -j $(getconf _NPROCESSORS_ONLN) install && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/postgis.control && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/postgis_raster.control && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/postgis_sfcgal.control && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/postgis_tiger_geocoder.control && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/postgis_topology.control && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/address_standardizer.control && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/address_standardizer_data_us.control && \ - mkdir -p /extensions/postgis && \ - cp /usr/local/pgsql/share/extension/postgis.control /extensions/postgis && \ - cp /usr/local/pgsql/share/extension/postgis_raster.control /extensions/postgis && \ - cp /usr/local/pgsql/share/extension/postgis_sfcgal.control /extensions/postgis && \ - cp /usr/local/pgsql/share/extension/postgis_tiger_geocoder.control /extensions/postgis && \ - cp /usr/local/pgsql/share/extension/postgis_topology.control /extensions/postgis && \ - cp /usr/local/pgsql/share/extension/address_standardizer.control /extensions/postgis && \ - cp /usr/local/pgsql/share/extension/address_standardizer_data_us.control /extensions/postgis - -RUN wget https://github.com/pgRouting/pgrouting/archive/v3.4.2.tar.gz -O pgrouting.tar.gz && \ - echo "cac297c07d34460887c4f3b522b35c470138760fe358e351ad1db4edb6ee306e pgrouting.tar.gz" | sha256sum --check && \ - mkdir pgrouting-src && cd pgrouting-src && tar xvzf ../pgrouting.tar.gz --strip-components=1 -C . && \ - mkdir build && cd build && \ - 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 && \ - find /usr/local/pgsql -type f | sed 's|^/usr/local/pgsql/||' > /after.txt &&\ - cp /usr/local/pgsql/share/extension/pgrouting.control /extensions/postgis && \ - sort -o /before.txt /before.txt && sort -o /after.txt /after.txt && \ - comm -13 /before.txt /after.txt | tar --directory=/usr/local/pgsql --zstd -cf /extensions/postgis.tar.zst -T - - -######################################################################################### -# -# Layer "plv8-build" -# Build plv8 -# -######################################################################################### -FROM build-deps AS plv8-build -COPY --from=pg-build /usr/local/pgsql/ /usr/local/pgsql/ - -RUN apt update && \ - apt install -y ninja-build python3-dev libncurses5 binutils clang - -RUN wget https://github.com/plv8/plv8/archive/refs/tags/v3.1.10.tar.gz -O plv8.tar.gz && \ - echo "7096c3290928561f0d4901b7a52794295dc47f6303102fae3f8e42dd575ad97d plv8.tar.gz" | sha256sum --check && \ - mkdir plv8-src && cd plv8-src && tar xvzf ../plv8.tar.gz --strip-components=1 -C . && \ - # generate and copy upgrade scripts - mkdir -p upgrade && ./generate_upgrade.sh 3.1.10 && \ - cp upgrade/* /usr/local/pgsql/share/extension/ && \ - export PATH="/usr/local/pgsql/bin:$PATH" && \ - make DOCKER=1 -j $(getconf _NPROCESSORS_ONLN) install && \ - rm -rf /plv8-* && \ - find /usr/local/pgsql/ -name "plv8-*.so" | xargs strip && \ - # don't break computes with installed old version of plv8 - cd /usr/local/pgsql/lib/ && \ - ln -s plv8-3.1.10.so plv8-3.1.5.so && \ - ln -s plv8-3.1.10.so plv8-3.1.8.so && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/plv8.control && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/plcoffee.control && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/plls.control - -######################################################################################### -# -# Layer "h3-pg-build" -# Build h3_pg -# -######################################################################################### -FROM build-deps AS h3-pg-build -COPY --from=pg-build /usr/local/pgsql/ /usr/local/pgsql/ - -RUN case "$(uname -m)" in \ - "x86_64") \ - export CMAKE_CHECKSUM=739d372726cb23129d57a539ce1432453448816e345e1545f6127296926b6754 \ - ;; \ - "aarch64") \ - export CMAKE_CHECKSUM=281b42627c9a1beed03e29706574d04c6c53fae4994472e90985ef018dd29c02 \ - ;; \ - *) \ - echo "Unsupported architecture '$(uname -m)'. Supported are x86_64 and aarch64" && exit 1 \ - ;; \ - esac && \ - wget https://github.com/Kitware/CMake/releases/download/v3.24.2/cmake-3.24.2-linux-$(uname -m).sh \ - -q -O /tmp/cmake-install.sh \ - && echo "${CMAKE_CHECKSUM} /tmp/cmake-install.sh" | sha256sum --check \ - && chmod u+x /tmp/cmake-install.sh \ - && /tmp/cmake-install.sh --skip-license --prefix=/usr/local/ \ - && rm /tmp/cmake-install.sh - -RUN wget https://github.com/uber/h3/archive/refs/tags/v4.1.0.tar.gz -O h3.tar.gz && \ - echo "ec99f1f5974846bde64f4513cf8d2ea1b8d172d2218ab41803bf6a63532272bc h3.tar.gz" | sha256sum --check && \ - mkdir h3-src && cd h3-src && tar xvzf ../h3.tar.gz --strip-components=1 -C . && \ - mkdir build && cd build && \ - cmake .. -DCMAKE_BUILD_TYPE=Release && \ - make -j $(getconf _NPROCESSORS_ONLN) && \ - DESTDIR=/h3 make install && \ - cp -R /h3/usr / && \ - rm -rf build - -RUN wget https://github.com/zachasme/h3-pg/archive/refs/tags/v4.1.3.tar.gz -O h3-pg.tar.gz && \ - echo "5c17f09a820859ffe949f847bebf1be98511fb8f1bd86f94932512c00479e324 h3-pg.tar.gz" | sha256sum --check && \ - mkdir h3-pg-src && cd h3-pg-src && tar xvzf ../h3-pg.tar.gz --strip-components=1 -C . && \ - export PATH="/usr/local/pgsql/bin:$PATH" && \ - make -j $(getconf _NPROCESSORS_ONLN) && \ - make -j $(getconf _NPROCESSORS_ONLN) install && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/h3.control && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/h3_postgis.control - -######################################################################################### -# -# Layer "unit-pg-build" -# compile unit extension -# -######################################################################################### -FROM build-deps AS unit-pg-build -COPY --from=pg-build /usr/local/pgsql/ /usr/local/pgsql/ - -RUN wget https://github.com/df7cb/postgresql-unit/archive/refs/tags/7.7.tar.gz -O postgresql-unit.tar.gz && \ - echo "411d05beeb97e5a4abf17572bfcfbb5a68d98d1018918feff995f6ee3bb03e79 postgresql-unit.tar.gz" | sha256sum --check && \ - mkdir postgresql-unit-src && cd postgresql-unit-src && tar xvzf ../postgresql-unit.tar.gz --strip-components=1 -C . && \ - make -j $(getconf _NPROCESSORS_ONLN) PG_CONFIG=/usr/local/pgsql/bin/pg_config && \ - make -j $(getconf _NPROCESSORS_ONLN) install PG_CONFIG=/usr/local/pgsql/bin/pg_config && \ - # unit extension's "create extension" script relies on absolute install path to fill some reference tables. - # We move the extension from '/usr/local/pgsql/' to '/usr/local/' after it is build. So we need to adjust the path. - # This one-liner removes pgsql/ part of the path. - # NOTE: Other extensions that rely on MODULEDIR variable after building phase will need the same fix. - find /usr/local/pgsql/share/extension/ -name "unit*.sql" -print0 | xargs -0 sed -i "s|pgsql/||g" && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/unit.control - -######################################################################################### -# -# Layer "vector-pg-build" -# compile pgvector extension -# -######################################################################################### -FROM build-deps AS vector-pg-build -COPY --from=pg-build /usr/local/pgsql/ /usr/local/pgsql/ - -RUN wget https://github.com/pgvector/pgvector/archive/refs/tags/v0.5.1.tar.gz -O pgvector.tar.gz && \ - echo "cc7a8e034a96e30a819911ac79d32f6bc47bdd1aa2de4d7d4904e26b83209dc8 pgvector.tar.gz" | sha256sum --check && \ - mkdir pgvector-src && cd pgvector-src && tar xvzf ../pgvector.tar.gz --strip-components=1 -C . && \ - make -j $(getconf _NPROCESSORS_ONLN) PG_CONFIG=/usr/local/pgsql/bin/pg_config && \ - make -j $(getconf _NPROCESSORS_ONLN) install PG_CONFIG=/usr/local/pgsql/bin/pg_config && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/vector.control - -######################################################################################### -# -# Layer "pgjwt-pg-build" -# compile pgjwt extension -# -######################################################################################### -FROM build-deps AS pgjwt-pg-build -COPY --from=pg-build /usr/local/pgsql/ /usr/local/pgsql/ - -# 9742dab1b2f297ad3811120db7b21451bca2d3c9 made on 13/11/2021 -RUN wget https://github.com/michelp/pgjwt/archive/9742dab1b2f297ad3811120db7b21451bca2d3c9.tar.gz -O pgjwt.tar.gz && \ - echo "cfdefb15007286f67d3d45510f04a6a7a495004be5b3aecb12cda667e774203f pgjwt.tar.gz" | sha256sum --check && \ - mkdir pgjwt-src && cd pgjwt-src && tar xvzf ../pgjwt.tar.gz --strip-components=1 -C . && \ - make -j $(getconf _NPROCESSORS_ONLN) install PG_CONFIG=/usr/local/pgsql/bin/pg_config && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/pgjwt.control - -######################################################################################### -# -# Layer "hypopg-pg-build" -# compile hypopg extension -# -######################################################################################### -FROM build-deps AS hypopg-pg-build -COPY --from=pg-build /usr/local/pgsql/ /usr/local/pgsql/ - -RUN wget https://github.com/HypoPG/hypopg/archive/refs/tags/1.4.0.tar.gz -O hypopg.tar.gz && \ - echo "0821011743083226fc9b813c1f2ef5897a91901b57b6bea85a78e466187c6819 hypopg.tar.gz" | sha256sum --check && \ - mkdir hypopg-src && cd hypopg-src && tar xvzf ../hypopg.tar.gz --strip-components=1 -C . && \ - make -j $(getconf _NPROCESSORS_ONLN) PG_CONFIG=/usr/local/pgsql/bin/pg_config && \ - make -j $(getconf _NPROCESSORS_ONLN) install PG_CONFIG=/usr/local/pgsql/bin/pg_config && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/hypopg.control - -######################################################################################### -# -# Layer "pg-hashids-pg-build" -# compile pg_hashids extension -# -######################################################################################### -FROM build-deps AS pg-hashids-pg-build -COPY --from=pg-build /usr/local/pgsql/ /usr/local/pgsql/ - -RUN wget https://github.com/iCyberon/pg_hashids/archive/refs/tags/v1.2.1.tar.gz -O pg_hashids.tar.gz && \ - echo "74576b992d9277c92196dd8d816baa2cc2d8046fe102f3dcd7f3c3febed6822a pg_hashids.tar.gz" | sha256sum --check && \ - mkdir pg_hashids-src && cd pg_hashids-src && tar xvzf ../pg_hashids.tar.gz --strip-components=1 -C . && \ - make -j $(getconf _NPROCESSORS_ONLN) PG_CONFIG=/usr/local/pgsql/bin/pg_config USE_PGXS=1 && \ - make -j $(getconf _NPROCESSORS_ONLN) install PG_CONFIG=/usr/local/pgsql/bin/pg_config USE_PGXS=1 && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/pg_hashids.control - -######################################################################################### -# -# Layer "rum-pg-build" -# compile rum extension -# -######################################################################################### -FROM build-deps AS rum-pg-build -COPY --from=pg-build /usr/local/pgsql/ /usr/local/pgsql/ - -RUN wget https://github.com/postgrespro/rum/archive/refs/tags/1.3.13.tar.gz -O rum.tar.gz && \ - echo "6ab370532c965568df6210bd844ac6ba649f53055e48243525b0b7e5c4d69a7d rum.tar.gz" | sha256sum --check && \ - mkdir rum-src && cd rum-src && tar xvzf ../rum.tar.gz --strip-components=1 -C . && \ - make -j $(getconf _NPROCESSORS_ONLN) PG_CONFIG=/usr/local/pgsql/bin/pg_config USE_PGXS=1 && \ - make -j $(getconf _NPROCESSORS_ONLN) install PG_CONFIG=/usr/local/pgsql/bin/pg_config USE_PGXS=1 && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/rum.control - -######################################################################################### -# -# Layer "pgtap-pg-build" -# compile pgTAP extension -# -######################################################################################### -FROM build-deps AS pgtap-pg-build -COPY --from=pg-build /usr/local/pgsql/ /usr/local/pgsql/ - -RUN wget https://github.com/theory/pgtap/archive/refs/tags/v1.2.0.tar.gz -O pgtap.tar.gz && \ - echo "9c7c3de67ea41638e14f06da5da57bac6f5bd03fea05c165a0ec862205a5c052 pgtap.tar.gz" | sha256sum --check && \ - mkdir pgtap-src && cd pgtap-src && tar xvzf ../pgtap.tar.gz --strip-components=1 -C . && \ - make -j $(getconf _NPROCESSORS_ONLN) PG_CONFIG=/usr/local/pgsql/bin/pg_config && \ - make -j $(getconf _NPROCESSORS_ONLN) install PG_CONFIG=/usr/local/pgsql/bin/pg_config && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/pgtap.control - -######################################################################################### -# -# Layer "ip4r-pg-build" -# compile ip4r extension -# -######################################################################################### -FROM build-deps AS ip4r-pg-build -COPY --from=pg-build /usr/local/pgsql/ /usr/local/pgsql/ - -RUN wget https://github.com/RhodiumToad/ip4r/archive/refs/tags/2.4.2.tar.gz -O ip4r.tar.gz && \ - echo "0f7b1f159974f49a47842a8ab6751aecca1ed1142b6d5e38d81b064b2ead1b4b ip4r.tar.gz" | sha256sum --check && \ - mkdir ip4r-src && cd ip4r-src && tar xvzf ../ip4r.tar.gz --strip-components=1 -C . && \ - make -j $(getconf _NPROCESSORS_ONLN) PG_CONFIG=/usr/local/pgsql/bin/pg_config && \ - make -j $(getconf _NPROCESSORS_ONLN) install PG_CONFIG=/usr/local/pgsql/bin/pg_config && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/ip4r.control - -######################################################################################### -# -# Layer "prefix-pg-build" -# compile Prefix extension -# -######################################################################################### -FROM build-deps AS prefix-pg-build -COPY --from=pg-build /usr/local/pgsql/ /usr/local/pgsql/ - -RUN wget https://github.com/dimitri/prefix/archive/refs/tags/v1.2.10.tar.gz -O prefix.tar.gz && \ - echo "4342f251432a5f6fb05b8597139d3ccde8dcf87e8ca1498e7ee931ca057a8575 prefix.tar.gz" | sha256sum --check && \ - mkdir prefix-src && cd prefix-src && tar xvzf ../prefix.tar.gz --strip-components=1 -C . && \ - make -j $(getconf _NPROCESSORS_ONLN) PG_CONFIG=/usr/local/pgsql/bin/pg_config && \ - make -j $(getconf _NPROCESSORS_ONLN) install PG_CONFIG=/usr/local/pgsql/bin/pg_config && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/prefix.control - -######################################################################################### -# -# Layer "hll-pg-build" -# compile hll extension -# -######################################################################################### -FROM build-deps AS hll-pg-build -COPY --from=pg-build /usr/local/pgsql/ /usr/local/pgsql/ - -RUN wget https://github.com/citusdata/postgresql-hll/archive/refs/tags/v2.18.tar.gz -O hll.tar.gz && \ - echo "e2f55a6f4c4ab95ee4f1b4a2b73280258c5136b161fe9d059559556079694f0e hll.tar.gz" | sha256sum --check && \ - mkdir hll-src && cd hll-src && tar xvzf ../hll.tar.gz --strip-components=1 -C . && \ - make -j $(getconf _NPROCESSORS_ONLN) PG_CONFIG=/usr/local/pgsql/bin/pg_config && \ - make -j $(getconf _NPROCESSORS_ONLN) install PG_CONFIG=/usr/local/pgsql/bin/pg_config && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/hll.control - -######################################################################################### -# -# Layer "plpgsql-check-pg-build" -# compile plpgsql_check extension -# -######################################################################################### -FROM build-deps AS plpgsql-check-pg-build -COPY --from=pg-build /usr/local/pgsql/ /usr/local/pgsql/ - -RUN wget https://github.com/okbob/plpgsql_check/archive/refs/tags/v2.5.3.tar.gz -O plpgsql_check.tar.gz && \ - echo "6631ec3e7fb3769eaaf56e3dfedb829aa761abf163d13dba354b4c218508e1c0 plpgsql_check.tar.gz" | sha256sum --check && \ - mkdir plpgsql_check-src && cd plpgsql_check-src && tar xvzf ../plpgsql_check.tar.gz --strip-components=1 -C . && \ - make -j $(getconf _NPROCESSORS_ONLN) PG_CONFIG=/usr/local/pgsql/bin/pg_config USE_PGXS=1 && \ - make -j $(getconf _NPROCESSORS_ONLN) install PG_CONFIG=/usr/local/pgsql/bin/pg_config USE_PGXS=1 && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/plpgsql_check.control - -######################################################################################### -# -# Layer "timescaledb-pg-build" -# compile timescaledb extension -# -######################################################################################### -FROM build-deps AS timescaledb-pg-build -COPY --from=pg-build /usr/local/pgsql/ /usr/local/pgsql/ - -ARG PG_VERSION -ENV PATH "/usr/local/pgsql/bin:$PATH" - -RUN case "${PG_VERSION}" in \ - "v14" | "v15") \ - export TIMESCALEDB_VERSION=2.10.1 \ - export TIMESCALEDB_CHECKSUM=6fca72a6ed0f6d32d2b3523951ede73dc5f9b0077b38450a029a5f411fdb8c73 \ - ;; \ - *) \ - export TIMESCALEDB_VERSION=2.13.0 \ - export TIMESCALEDB_CHECKSUM=584a351c7775f0e067eaa0e7277ea88cab9077cc4c455cbbf09a5d9723dce95d \ - ;; \ - esac && \ - apt-get update && \ - apt-get install -y cmake && \ - wget https://github.com/timescale/timescaledb/archive/refs/tags/${TIMESCALEDB_VERSION}.tar.gz -O timescaledb.tar.gz && \ - echo "${TIMESCALEDB_CHECKSUM} 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 -DCMAKE_BUILD_TYPE=Release && \ - cd build && \ - make -j $(getconf _NPROCESSORS_ONLN) && \ - make install -j $(getconf _NPROCESSORS_ONLN) && \ - echo "trusted = true" >> /usr/local/pgsql/share/extension/timescaledb.control - -######################################################################################### -# -# Layer "pg-hint-plan-pg-build" -# compile pg_hint_plan extension -# -######################################################################################### -FROM build-deps AS pg-hint-plan-pg-build -COPY --from=pg-build /usr/local/pgsql/ /usr/local/pgsql/ - -ARG PG_VERSION -ENV PATH "/usr/local/pgsql/bin:$PATH" - -RUN case "${PG_VERSION}" in \ - "v14") \ - export PG_HINT_PLAN_VERSION=14_1_4_1 \ - export PG_HINT_PLAN_CHECKSUM=c3501becf70ead27f70626bce80ea401ceac6a77e2083ee5f3ff1f1444ec1ad1 \ - ;; \ - "v15") \ - export PG_HINT_PLAN_VERSION=15_1_5_0 \ - export PG_HINT_PLAN_CHECKSUM=564cbbf4820973ffece63fbf76e3c0af62c4ab23543142c7caaa682bc48918be \ - ;; \ - "v16") \ - export PG_HINT_PLAN_VERSION=16_1_6_0 \ - export PG_HINT_PLAN_CHECKSUM=fc85a9212e7d2819d4ae4ac75817481101833c3cfa9f0fe1f980984e12347d00 \ - ;; \ - *) \ - echo "Export the valid PG_HINT_PLAN_VERSION variable" && exit 1 \ - ;; \ - esac && \ - wget https://github.com/ossc-db/pg_hint_plan/archive/refs/tags/REL${PG_HINT_PLAN_VERSION}.tar.gz -O pg_hint_plan.tar.gz && \ - echo "${PG_HINT_PLAN_CHECKSUM} pg_hint_plan.tar.gz" | sha256sum --check && \ - mkdir pg_hint_plan-src && cd pg_hint_plan-src && tar xvzf ../pg_hint_plan.tar.gz --strip-components=1 -C . && \ - make -j $(getconf _NPROCESSORS_ONLN) && \ - make install -j $(getconf _NPROCESSORS_ONLN) && \ - echo "trusted = true" >> /usr/local/pgsql/share/extension/pg_hint_plan.control - -######################################################################################### -# -# Layer "kq-imcx-pg-build" -# compile kq_imcx extension -# -######################################################################################### -FROM build-deps AS kq-imcx-pg-build -COPY --from=pg-build /usr/local/pgsql/ /usr/local/pgsql/ - -ENV PATH "/usr/local/pgsql/bin/:$PATH" -RUN apt-get update && \ - apt-get install -y git libgtk2.0-dev libpq-dev libpam-dev libxslt-dev libkrb5-dev cmake && \ - wget https://github.com/ketteq-neon/postgres-exts/archive/e0bd1a9d9313d7120c1b9c7bb15c48c0dede4c4e.tar.gz -O kq_imcx.tar.gz && \ - echo "dc93a97ff32d152d32737ba7e196d9687041cda15e58ab31344c2f2de8855336 kq_imcx.tar.gz" | sha256sum --check && \ - mkdir kq_imcx-src && cd kq_imcx-src && tar xvzf ../kq_imcx.tar.gz --strip-components=1 -C . && \ - find /usr/local/pgsql -type f | sed 's|^/usr/local/pgsql/||' > /before.txt &&\ - mkdir build && cd build && \ - 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 && \ - find /usr/local/pgsql -type f | sed 's|^/usr/local/pgsql/||' > /after.txt &&\ - mkdir -p /extensions/kq_imcx && cp /usr/local/pgsql/share/extension/kq_imcx.control /extensions/kq_imcx && \ - sort -o /before.txt /before.txt && sort -o /after.txt /after.txt && \ - comm -13 /before.txt /after.txt | tar --directory=/usr/local/pgsql --zstd -cf /extensions/kq_imcx.tar.zst -T - - -######################################################################################### -# -# Layer "pg-cron-pg-build" -# compile pg_cron extension -# -######################################################################################### -FROM build-deps AS pg-cron-pg-build -COPY --from=pg-build /usr/local/pgsql/ /usr/local/pgsql/ - -ENV PATH "/usr/local/pgsql/bin/:$PATH" -RUN wget https://github.com/citusdata/pg_cron/archive/refs/tags/v1.6.0.tar.gz -O pg_cron.tar.gz && \ - echo "383a627867d730222c272bfd25cd5e151c578d73f696d32910c7db8c665cc7db pg_cron.tar.gz" | sha256sum --check && \ - mkdir pg_cron-src && cd pg_cron-src && tar xvzf ../pg_cron.tar.gz --strip-components=1 -C . && \ - make -j $(getconf _NPROCESSORS_ONLN) && \ - 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 - -ENV PATH "/usr/local/pgsql/bin/:/usr/local/pgsql/:$PATH" -RUN wget https://github.com/rdkit/rdkit/archive/refs/tags/Release_2023_03_3.tar.gz -O rdkit.tar.gz && \ - echo "bdbf9a2e6988526bfeb8c56ce3cdfe2998d60ac289078e2215374288185e8c8d 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 RDK_INSTALL_COMIC_FONTS=OFF \ - -D RDK_BUILD_FREETYPE_SUPPORT=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 "pg-uuidv7-pg-build" -# compile pg_uuidv7 extension -# -######################################################################################### -FROM build-deps AS pg-uuidv7-pg-build -COPY --from=pg-build /usr/local/pgsql/ /usr/local/pgsql/ - -ENV PATH "/usr/local/pgsql/bin/:$PATH" -RUN wget https://github.com/fboulnois/pg_uuidv7/archive/refs/tags/v1.0.1.tar.gz -O pg_uuidv7.tar.gz && \ - echo "0d0759ab01b7fb23851ecffb0bce27822e1868a4a5819bfd276101c716637a7a pg_uuidv7.tar.gz" | sha256sum --check && \ - mkdir pg_uuidv7-src && cd pg_uuidv7-src && tar xvzf ../pg_uuidv7.tar.gz --strip-components=1 -C . && \ - make -j $(getconf _NPROCESSORS_ONLN) && \ - make -j $(getconf _NPROCESSORS_ONLN) install && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/pg_uuidv7.control - -######################################################################################### -# -# Layer "pg-roaringbitmap-pg-build" -# compile pg_roaringbitmap extension -# -######################################################################################### -FROM build-deps AS pg-roaringbitmap-pg-build -COPY --from=pg-build /usr/local/pgsql/ /usr/local/pgsql/ - -ENV PATH "/usr/local/pgsql/bin/:$PATH" -RUN wget https://github.com/ChenHuajun/pg_roaringbitmap/archive/refs/tags/v0.5.4.tar.gz -O pg_roaringbitmap.tar.gz && \ - echo "b75201efcb1c2d1b014ec4ae6a22769cc7a224e6e406a587f5784a37b6b5a2aa pg_roaringbitmap.tar.gz" | sha256sum --check && \ - mkdir pg_roaringbitmap-src && cd pg_roaringbitmap-src && tar xvzf ../pg_roaringbitmap.tar.gz --strip-components=1 -C . && \ - make -j $(getconf _NPROCESSORS_ONLN) && \ - make -j $(getconf _NPROCESSORS_ONLN) install && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/roaringbitmap.control - -######################################################################################### -# -# Layer "pg-semver-pg-build" -# compile pg_semver extension -# -######################################################################################### -FROM build-deps AS pg-semver-pg-build -COPY --from=pg-build /usr/local/pgsql/ /usr/local/pgsql/ - -ENV PATH "/usr/local/pgsql/bin/:$PATH" -RUN wget https://github.com/theory/pg-semver/archive/refs/tags/v0.32.1.tar.gz -O pg_semver.tar.gz && \ - echo "fbdaf7512026d62eec03fad8687c15ed509b6ba395bff140acd63d2e4fbe25d7 pg_semver.tar.gz" | sha256sum --check && \ - mkdir pg_semver-src && cd pg_semver-src && tar xvzf ../pg_semver.tar.gz --strip-components=1 -C . && \ - make -j $(getconf _NPROCESSORS_ONLN) && \ - make -j $(getconf _NPROCESSORS_ONLN) install && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/semver.control - -######################################################################################### -# -# Layer "pg-embedding-pg-build" -# compile pg_embedding extension -# -######################################################################################### -FROM build-deps AS pg-embedding-pg-build -COPY --from=pg-build /usr/local/pgsql/ /usr/local/pgsql/ - -ARG PG_VERSION -ENV PATH "/usr/local/pgsql/bin/:$PATH" -RUN case "${PG_VERSION}" in \ - "v14" | "v15") \ - export PG_EMBEDDING_VERSION=0.3.5 \ - export PG_EMBEDDING_CHECKSUM=0e95b27b8b6196e2cf0a0c9ec143fe2219b82e54c5bb4ee064e76398cbe69ae9 \ - ;; \ - *) \ - echo "pg_embedding not supported on this PostgreSQL version. Use pgvector instead." && exit 0;; \ - esac && \ - wget https://github.com/neondatabase/pg_embedding/archive/refs/tags/${PG_EMBEDDING_VERSION}.tar.gz -O pg_embedding.tar.gz && \ - echo "${PG_EMBEDDING_CHECKSUM} pg_embedding.tar.gz" | sha256sum --check && \ - mkdir pg_embedding-src && cd pg_embedding-src && tar xvzf ../pg_embedding.tar.gz --strip-components=1 -C . && \ - make -j $(getconf _NPROCESSORS_ONLN) && \ - make -j $(getconf _NPROCESSORS_ONLN) install - -######################################################################################### -# -# Layer "pg-anon-pg-build" -# compile anon extension -# -######################################################################################### -FROM build-deps AS pg-anon-pg-build -COPY --from=pg-build /usr/local/pgsql/ /usr/local/pgsql/ - -ENV PATH "/usr/local/pgsql/bin/:$PATH" -RUN wget https://github.com/neondatabase/postgresql_anonymizer/archive/refs/tags/neon_1.1.1.tar.gz -O pg_anon.tar.gz && \ - echo "321ea8d5c1648880aafde850a2c576e4a9e7b9933a34ce272efc839328999fa9 pg_anon.tar.gz" | sha256sum --check && \ - mkdir pg_anon-src && cd pg_anon-src && tar xvzf ../pg_anon.tar.gz --strip-components=1 -C . && \ - find /usr/local/pgsql -type f | sed 's|^/usr/local/pgsql/||' > /before.txt &&\ - make -j $(getconf _NPROCESSORS_ONLN) install PG_CONFIG=/usr/local/pgsql/bin/pg_config && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/anon.control && \ - find /usr/local/pgsql -type f | sed 's|^/usr/local/pgsql/||' > /after.txt &&\ - mkdir -p /extensions/anon && cp /usr/local/pgsql/share/extension/anon.control /extensions/anon && \ - sort -o /before.txt /before.txt && sort -o /after.txt /after.txt && \ - comm -13 /before.txt /after.txt | tar --directory=/usr/local/pgsql --zstd -cf /extensions/anon.tar.zst -T - - -######################################################################################### -# -# Layer "rust extensions" -# This layer is used to build `pgrx` deps -# -######################################################################################### -FROM build-deps AS rust-extensions-build -COPY --from=pg-build /usr/local/pgsql/ /usr/local/pgsql/ - -RUN apt-get update && \ - apt-get install -y curl libclang-dev cmake && \ - useradd -ms /bin/bash nonroot -b /home - -ENV HOME=/home/nonroot -ENV PATH="/home/nonroot/.cargo/bin:/usr/local/pgsql/bin/:$PATH" -USER nonroot -WORKDIR /home/nonroot -ARG PG_VERSION - -RUN curl -sSO https://static.rust-lang.org/rustup/dist/$(uname -m)-unknown-linux-gnu/rustup-init && \ - chmod +x rustup-init && \ - ./rustup-init -y --no-modify-path --profile minimal --default-toolchain stable && \ - rm rustup-init && \ - cargo install --locked --version 0.10.2 cargo-pgrx && \ - /bin/bash -c 'cargo pgrx init --pg${PG_VERSION:1}=/usr/local/pgsql/bin/pg_config' - -USER root - -######################################################################################### -# -# Layer "pg-jsonschema-pg-build" -# Compile "pg_jsonschema" extension -# -######################################################################################### - -FROM rust-extensions-build AS pg-jsonschema-pg-build -ARG PG_VERSION - -RUN wget https://github.com/supabase/pg_jsonschema/archive/refs/tags/v0.2.0.tar.gz -O pg_jsonschema.tar.gz && \ - echo "9118fc508a6e231e7a39acaa6f066fcd79af17a5db757b47d2eefbe14f7794f0 pg_jsonschema.tar.gz" | sha256sum --check && \ - mkdir pg_jsonschema-src && cd pg_jsonschema-src && tar xvzf ../pg_jsonschema.tar.gz --strip-components=1 -C . && \ - sed -i 's/pgrx = "0.10.2"/pgrx = { version = "0.10.2", features = [ "unsafe-postgres" ] }/g' Cargo.toml && \ - cargo pgrx install --release && \ - echo "trusted = true" >> /usr/local/pgsql/share/extension/pg_jsonschema.control - -######################################################################################### -# -# Layer "pg-graphql-pg-build" -# Compile "pg_graphql" extension -# -######################################################################################### - -FROM rust-extensions-build AS pg-graphql-pg-build -ARG PG_VERSION - -RUN wget https://github.com/supabase/pg_graphql/archive/refs/tags/v1.4.0.tar.gz -O pg_graphql.tar.gz && \ - echo "bd8dc7230282b3efa9ae5baf053a54151ed0e66881c7c53750e2d0c765776edc pg_graphql.tar.gz" | sha256sum --check && \ - mkdir pg_graphql-src && cd pg_graphql-src && tar xvzf ../pg_graphql.tar.gz --strip-components=1 -C . && \ - sed -i 's/pgrx = "=0.10.2"/pgrx = { version = "0.10.2", features = [ "unsafe-postgres" ] }/g' Cargo.toml && \ - cargo pgrx install --release && \ - # it's needed to enable extension because it uses untrusted C language - sed -i 's/superuser = false/superuser = true/g' /usr/local/pgsql/share/extension/pg_graphql.control && \ - echo "trusted = true" >> /usr/local/pgsql/share/extension/pg_graphql.control - -######################################################################################### -# -# Layer "pg-tiktoken-build" -# Compile "pg_tiktoken" extension -# -######################################################################################### - -FROM rust-extensions-build AS pg-tiktoken-pg-build -ARG PG_VERSION - -# 26806147b17b60763039c6a6878884c41a262318 made on 26/09/2023 -RUN wget https://github.com/kelvich/pg_tiktoken/archive/26806147b17b60763039c6a6878884c41a262318.tar.gz -O pg_tiktoken.tar.gz && \ - echo "e64e55aaa38c259512d3e27c572da22c4637418cf124caba904cd50944e5004e pg_tiktoken.tar.gz" | sha256sum --check && \ - mkdir pg_tiktoken-src && cd pg_tiktoken-src && tar xvzf ../pg_tiktoken.tar.gz --strip-components=1 -C . && \ - cargo pgrx install --release && \ - echo "trusted = true" >> /usr/local/pgsql/share/extension/pg_tiktoken.control - -######################################################################################### -# -# Layer "pg-pgx-ulid-build" -# Compile "pgx_ulid" extension -# -######################################################################################### - -FROM rust-extensions-build AS pg-pgx-ulid-build -ARG PG_VERSION - -RUN wget https://github.com/pksunkara/pgx_ulid/archive/refs/tags/v0.1.3.tar.gz -O pgx_ulid.tar.gz && \ - echo "ee5db82945d2d9f2d15597a80cf32de9dca67b897f605beb830561705f12683c pgx_ulid.tar.gz" | sha256sum --check && \ - mkdir pgx_ulid-src && cd pgx_ulid-src && tar xvzf ../pgx_ulid.tar.gz --strip-components=1 -C . && \ - echo "******************* Apply a patch for Postgres 16 support; delete in the next release ******************" && \ - wget https://github.com/pksunkara/pgx_ulid/commit/f84954cf63fc8c80d964ac970d9eceed3c791196.patch && \ - patch -p1 < f84954cf63fc8c80d964ac970d9eceed3c791196.patch && \ - echo "********************************************************************************************************" && \ - sed -i 's/pgrx = "=0.10.2"/pgrx = { version = "=0.10.2", features = [ "unsafe-postgres" ] }/g' Cargo.toml && \ - cargo pgrx install --release && \ - echo "trusted = true" >> /usr/local/pgsql/share/extension/ulid.control - -######################################################################################### -# -# Layer "wal2json-build" -# Compile "wal2json" extension -# -######################################################################################### - -FROM build-deps AS wal2json-pg-build -COPY --from=pg-build /usr/local/pgsql/ /usr/local/pgsql/ - -ENV PATH "/usr/local/pgsql/bin/:$PATH" -RUN wget https://github.com/eulerto/wal2json/archive/refs/tags/wal2json_2_5.tar.gz && \ - echo "b516653575541cf221b99cf3f8be9b6821f6dbcfc125675c85f35090f824f00e wal2json_2_5.tar.gz" | sha256sum --check && \ - mkdir wal2json-src && cd wal2json-src && tar xvzf ../wal2json_2_5.tar.gz --strip-components=1 -C . && \ - make -j $(getconf _NPROCESSORS_ONLN) && \ - make -j $(getconf _NPROCESSORS_ONLN) install - ######################################################################################### # # Layer "neon-pg-ext-build" @@ -778,38 +81,6 @@ RUN wget https://github.com/eulerto/wal2json/archive/refs/tags/wal2json_2_5.tar. FROM build-deps AS neon-pg-ext-build ARG PG_VERSION -# Public extensions -COPY --from=postgis-build /usr/local/pgsql/ /usr/local/pgsql/ -COPY --from=postgis-build /sfcgal/* / -COPY --from=plv8-build /usr/local/pgsql/ /usr/local/pgsql/ -COPY --from=h3-pg-build /usr/local/pgsql/ /usr/local/pgsql/ -COPY --from=h3-pg-build /h3/usr / -COPY --from=unit-pg-build /usr/local/pgsql/ /usr/local/pgsql/ -COPY --from=vector-pg-build /usr/local/pgsql/ /usr/local/pgsql/ -COPY --from=pgjwt-pg-build /usr/local/pgsql/ /usr/local/pgsql/ -COPY --from=pg-jsonschema-pg-build /usr/local/pgsql/ /usr/local/pgsql/ -COPY --from=pg-graphql-pg-build /usr/local/pgsql/ /usr/local/pgsql/ -COPY --from=pg-tiktoken-pg-build /usr/local/pgsql/ /usr/local/pgsql/ -COPY --from=hypopg-pg-build /usr/local/pgsql/ /usr/local/pgsql/ -COPY --from=pg-hashids-pg-build /usr/local/pgsql/ /usr/local/pgsql/ -COPY --from=rum-pg-build /usr/local/pgsql/ /usr/local/pgsql/ -COPY --from=pgtap-pg-build /usr/local/pgsql/ /usr/local/pgsql/ -COPY --from=ip4r-pg-build /usr/local/pgsql/ /usr/local/pgsql/ -COPY --from=prefix-pg-build /usr/local/pgsql/ /usr/local/pgsql/ -COPY --from=hll-pg-build /usr/local/pgsql/ /usr/local/pgsql/ -COPY --from=plpgsql-check-pg-build /usr/local/pgsql/ /usr/local/pgsql/ -COPY --from=timescaledb-pg-build /usr/local/pgsql/ /usr/local/pgsql/ -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 --from=pg-uuidv7-pg-build /usr/local/pgsql/ /usr/local/pgsql/ -COPY --from=pg-roaringbitmap-pg-build /usr/local/pgsql/ /usr/local/pgsql/ -COPY --from=pg-semver-pg-build /usr/local/pgsql/ /usr/local/pgsql/ -COPY --from=pg-embedding-pg-build /usr/local/pgsql/ /usr/local/pgsql/ -COPY --from=wal2json-pg-build /usr/local/pgsql /usr/local/pgsql -COPY --from=pg-anon-pg-build /usr/local/pgsql/ /usr/local/pgsql/ COPY pgxn/ pgxn/ RUN make -j $(getconf _NPROCESSORS_ONLN) \ @@ -895,7 +166,7 @@ RUN mkdir /var/db && useradd -m -d /var/db/postgres postgres && \ # create folder for file cache mkdir -p -m 777 /neon/cache -COPY --from=postgres-cleanup-layer --chown=postgres /usr/local/pgsql /usr/local +COPY --from=postgres-cleanup-layer --chown=postgres /usr/local/pgsql /usr/local/pgsql-$PG_VERSION COPY --from=compute-tools --chown=postgres /home/nonroot/target/release-line-debug-size-lto/compute_ctl /usr/local/bin/compute_ctl # Install: diff --git a/Dockerfile.compute-node-combined b/Dockerfile.compute-node-combined index ddd25f26e5..b92535700b 100644 --- a/Dockerfile.compute-node-combined +++ b/Dockerfile.compute-node-combined @@ -79,101 +79,101 @@ RUN for pg_version in v14 v15 v16; do \ cd ..; \ done -######################################################################################### +# ######################################################################################### +# # +# # Compile and run the Neon-specific `compute_ctl` binary +# # +# ######################################################################################### +# FROM $REPOSITORY/$IMAGE:$TAG AS compute-tools +# ARG BUILD_TAG +# ENV BUILD_TAG=$BUILD_TAG # -# Compile and run the Neon-specific `compute_ctl` binary +# USER nonroot +# # Copy entire project to get Cargo.* files with proper dependencies for the whole project +# COPY --chown=nonroot . . +# RUN cd compute_tools && cargo build --locked --profile release-line-debug-size-lto # -######################################################################################### -FROM $REPOSITORY/$IMAGE:$TAG AS compute-tools -ARG BUILD_TAG -ENV BUILD_TAG=$BUILD_TAG - -USER nonroot -# Copy entire project to get Cargo.* files with proper dependencies for the whole project -COPY --chown=nonroot . . -RUN cd compute_tools && cargo build --locked --profile release-line-debug-size-lto - -######################################################################################### +# ######################################################################################### +# # +# # Clean up postgres folder before inclusion +# # +# ######################################################################################### +# FROM pg-build AS postgres-cleanup-layer +# # COPY --from=neon-pg-ext-build /usr/local/pgsql /usr/local/pgsql # -# Clean up postgres folder before inclusion +# RUN for pg_version in v14 v15 v16; do \ +# prefix="/usr/local/pgsql-${pg_version}"; \ +# # Remove binaries from /bin/ that we won't use (or would manually copy & install otherwise) +# cd "${prefix}/bin" && rm ecpg raster2pgsql shp2pgsql pgtopo_export pgtopo_import pgsql2shp; \ +# cd ..; \ +# # Remove headers that we won't need anymore - we've completed installation of all extensions +# rm -r "${prefix}/include"; \ +# # Remove static postgresql libraries - all compilation is finished, so we +# # can now remove these files - they must be included in other binaries by now +# # if they were to be used by other libraries. +# rm ${prefix}/lib/lib*.a; \ +# done # -######################################################################################### -FROM pg-build AS postgres-cleanup-layer -# COPY --from=neon-pg-ext-build /usr/local/pgsql /usr/local/pgsql - -RUN for pg_version in v14 v15 v16; do \ - prefix="/usr/local/pgsql-${pg_version}"; \ - # Remove binaries from /bin/ that we won't use (or would manually copy & install otherwise) - cd "${prefix}/bin" && rm ecpg raster2pgsql shp2pgsql pgtopo_export pgtopo_import pgsql2shp; \ - cd ..; \ - # Remove headers that we won't need anymore - we've completed installation of all extensions - rm -r "${prefix}/include"; \ - # Remove static postgresql libraries - all compilation is finished, so we - # can now remove these files - they must be included in other binaries by now - # if they were to be used by other libraries. - rm ${prefix}/lib/lib*.a; \ -done - -######################################################################################### +# ######################################################################################### +# # +# # Final layer +# # Put it all together into the final image +# # +# ######################################################################################### +# FROM debian:bullseye-slim +# # Add user postgres +# RUN mkdir /var/db && useradd -m -d /var/db/postgres postgres && \ +# echo "postgres:test_console_pass" | chpasswd && \ +# mkdir /var/db/postgres/compute && mkdir /var/db/postgres/specs && \ +# mkdir /var/db/postgres/pgbouncer && \ +# chown -R postgres:postgres /var/db/postgres && \ +# chmod 0750 /var/db/postgres/compute && \ +# chmod 0750 /var/db/postgres/pgbouncer && \ +# echo '/usr/local/lib' >> /etc/ld.so.conf && /sbin/ldconfig && \ +# # create folder for file cache +# mkdir -p -m 777 /neon/cache # -# Final layer -# Put it all together into the final image +# COPY --from=postgres-cleanup-layer --chown=postgres /usr/local/pgsql-v14 /usr/local/pgsql-v14 +# COPY --from=postgres-cleanup-layer --chown=postgres /usr/local/pgsql-v15 /usr/local/pgsql-v15 +# COPY --from=postgres-cleanup-layer --chown=postgres /usr/local/pgsql-v16 /usr/local/pgsql-v16 +# COPY --from=compute-tools --chown=postgres /home/nonroot/target/release-line-debug-size-lto/compute_ctl /usr/local/bin/compute_ctl # -######################################################################################### -FROM debian:bullseye-slim -# Add user postgres -RUN mkdir /var/db && useradd -m -d /var/db/postgres postgres && \ - echo "postgres:test_console_pass" | chpasswd && \ - mkdir /var/db/postgres/compute && mkdir /var/db/postgres/specs && \ - mkdir /var/db/postgres/pgbouncer && \ - chown -R postgres:postgres /var/db/postgres && \ - chmod 0750 /var/db/postgres/compute && \ - chmod 0750 /var/db/postgres/pgbouncer && \ - echo '/usr/local/lib' >> /etc/ld.so.conf && /sbin/ldconfig && \ - # create folder for file cache - mkdir -p -m 777 /neon/cache - -COPY --from=postgres-cleanup-layer --chown=postgres /usr/local/pgsql-v14 /usr/local/pgsql-v14 -COPY --from=postgres-cleanup-layer --chown=postgres /usr/local/pgsql-v15 /usr/local/pgsql-v15 -COPY --from=postgres-cleanup-layer --chown=postgres /usr/local/pgsql-v16 /usr/local/pgsql-v16 -COPY --from=compute-tools --chown=postgres /home/nonroot/target/release-line-debug-size-lto/compute_ctl /usr/local/bin/compute_ctl - -# Install: -# libreadline8 for psql -# libicu67, locales for collations (including ICU and plpgsql_check) -# liblz4-1 for lz4 -# libossp-uuid16 for extension ossp-uuid -# libgeos, libgdal, libsfcgal1, libproj and libprotobuf-c1 for PostGIS -# libxml2, libxslt1.1 for xml2 -# libzstd1 for zstd -# libboost* for rdkit -# ca-certificates for communicating with s3 by compute_ctl -RUN apt update && \ - apt install --no-install-recommends -y \ - gdb \ - libicu67 \ - liblz4-1 \ - libreadline8 \ - libboost-iostreams1.74.0 \ - libboost-regex1.74.0 \ - libboost-serialization1.74.0 \ - libboost-system1.74.0 \ - libossp-uuid16 \ - libgeos-c1v5 \ - libgdal28 \ - libproj19 \ - libprotobuf-c1 \ - libsfcgal1 \ - libxml2 \ - libxslt1.1 \ - libzstd1 \ - libcurl4-openssl-dev \ - locales \ - procps \ - ca-certificates && \ - 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 - -ENV LANG en_US.utf8 -USER postgres -ENTRYPOINT ["/usr/local/bin/compute_ctl"] +# # Install: +# # libreadline8 for psql +# # libicu67, locales for collations (including ICU and plpgsql_check) +# # liblz4-1 for lz4 +# # libossp-uuid16 for extension ossp-uuid +# # libgeos, libgdal, libsfcgal1, libproj and libprotobuf-c1 for PostGIS +# # libxml2, libxslt1.1 for xml2 +# # libzstd1 for zstd +# # libboost* for rdkit +# # ca-certificates for communicating with s3 by compute_ctl +# RUN apt update && \ +# apt install --no-install-recommends -y \ +# gdb \ +# libicu67 \ +# liblz4-1 \ +# libreadline8 \ +# libboost-iostreams1.74.0 \ +# libboost-regex1.74.0 \ +# libboost-serialization1.74.0 \ +# libboost-system1.74.0 \ +# libossp-uuid16 \ +# libgeos-c1v5 \ +# libgdal28 \ +# libproj19 \ +# libprotobuf-c1 \ +# libsfcgal1 \ +# libxml2 \ +# libxslt1.1 \ +# libzstd1 \ +# libcurl4-openssl-dev \ +# locales \ +# procps \ +# ca-certificates && \ +# 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 +# +# ENV LANG en_US.utf8 +# USER postgres +# ENTRYPOINT ["/usr/local/bin/compute_ctl"]