From 87c8353d1dbfa007fb20e40b793a2c0a36eef6fc Mon Sep 17 00:00:00 2001 From: fcdm <128653800+fcdm@users.noreply.github.com> Date: Tue, 13 Feb 2024 15:59:46 +0000 Subject: [PATCH] comment extensions --- Dockerfile.compute-node-combined | 132 ++++++++++++++++--------------- 1 file changed, 68 insertions(+), 64 deletions(-) diff --git a/Dockerfile.compute-node-combined b/Dockerfile.compute-node-combined index 5958d55fbf..91106ea1ff 100644 --- a/Dockerfile.compute-node-combined +++ b/Dockerfile.compute-node-combined @@ -22,55 +22,59 @@ RUN apt update && \ # ######################################################################################### FROM build-deps AS pg-build -ARG PG_VERSION -COPY vendor/postgres-${PG_VERSION} postgres -RUN cd postgres && \ - export CONFIGURE_CMD="./configure CFLAGS='-O2 -g3' --enable-debug --with-openssl --with-uuid=ossp \ - --with-icu --with-libxml --with-libxslt --with-lz4" && \ - if [ "${PG_VERSION}" != "v14" ]; then \ - # zstd is available only from PG15 - export CONFIGURE_CMD="${CONFIGURE_CMD} --with-zstd"; \ - fi && \ - eval $CONFIGURE_CMD && \ - make MAKELEVEL=0 -j $(getconf _NPROCESSORS_ONLN) -s install && \ - make MAKELEVEL=0 -j $(getconf _NPROCESSORS_ONLN) -s -C contrib/ install && \ - # Install headers - make MAKELEVEL=0 -j $(getconf _NPROCESSORS_ONLN) -s -C src/include install && \ - make MAKELEVEL=0 -j $(getconf _NPROCESSORS_ONLN) -s -C src/interfaces/libpq install && \ - # Enable some of contrib extensions - echo 'trusted = true' >> /usr/local/pgsql/share/extension/autoinc.control && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/bloom.control && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/earthdistance.control && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/insert_username.control && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/intagg.control && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/moddatetime.control && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/pg_stat_statements.control && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/pgrowlocks.control && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/pgstattuple.control && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/refint.control && \ - echo 'trusted = true' >> /usr/local/pgsql/share/extension/xml2.control && \ - # We need to grant EXECUTE on pg_stat_statements_reset() to neon_superuser. - # In vanilla postgres this function is limited to Postgres role superuser. - # In neon we have neon_superuser role that is not a superuser but replaces superuser in some cases. - # We could add the additional grant statements to the postgres repository but it would be hard to maintain, - # whenever we need to pick up a new postgres version and we want to limit the changes in our postgres fork, - # so we do it here. - old_list="pg_stat_statements--1.0--1.1.sql pg_stat_statements--1.1--1.2.sql pg_stat_statements--1.2--1.3.sql pg_stat_statements--1.3--1.4.sql pg_stat_statements--1.4--1.5.sql pg_stat_statements--1.4.sql pg_stat_statements--1.5--1.6.sql"; \ - # the first loop is for pg_stat_statement extension version <= 1.6 - for file in /usr/local/pgsql/share/extension/pg_stat_statements--*.sql; do \ - filename=$(basename "$file"); \ - if echo "$old_list" | grep -q -F "$filename"; then \ - echo 'GRANT EXECUTE ON FUNCTION pg_stat_statements_reset() TO neon_superuser;' >> $file; \ - fi; \ - done; \ - # the second loop is for pg_stat_statement extension versions >= 1.7, - # where pg_stat_statement_reset() got 3 additional arguments - for file in /usr/local/pgsql/share/extension/pg_stat_statements--*.sql; do \ - filename=$(basename "$file"); \ - if ! echo "$old_list" | grep -q -F "$filename"; then \ - echo 'GRANT EXECUTE ON FUNCTION pg_stat_statements_reset(Oid, Oid, bigint) TO neon_superuser;' >> $file; \ - fi; \ +# ARG PG_VERSION +# COPY vendor/postgres-${PG_VERSION} postgres +RUN for version in v14 v15 v16; do \ + cp -r "vendor/postgres-${version}" "postgres-$version" ;\ + echo $version \ done +# RUN cd postgres && \ + # export CONFIGURE_CMD="./configure CFLAGS='-O2 -g3' --enable-debug --with-openssl --with-uuid=ossp \ + # --with-icu --with-libxml --with-libxslt --with-lz4" && \ + # if [ "${PG_VERSION}" != "v14" ]; then \ + # # zstd is available only from PG15 + # export CONFIGURE_CMD="${CONFIGURE_CMD} --with-zstd"; \ + # fi && \ + # eval $CONFIGURE_CMD && \ + # make MAKELEVEL=0 -j $(getconf _NPROCESSORS_ONLN) -s install && \ + # make MAKELEVEL=0 -j $(getconf _NPROCESSORS_ONLN) -s -C contrib/ install && \ + # # Install headers + # make MAKELEVEL=0 -j $(getconf _NPROCESSORS_ONLN) -s -C src/include install && \ + # make MAKELEVEL=0 -j $(getconf _NPROCESSORS_ONLN) -s -C src/interfaces/libpq install && \ + # # Enable some of contrib extensions + # echo 'trusted = true' >> /usr/local/pgsql/share/extension/autoinc.control && \ + # echo 'trusted = true' >> /usr/local/pgsql/share/extension/bloom.control && \ + # echo 'trusted = true' >> /usr/local/pgsql/share/extension/earthdistance.control && \ + # echo 'trusted = true' >> /usr/local/pgsql/share/extension/insert_username.control && \ + # echo 'trusted = true' >> /usr/local/pgsql/share/extension/intagg.control && \ + # echo 'trusted = true' >> /usr/local/pgsql/share/extension/moddatetime.control && \ + # echo 'trusted = true' >> /usr/local/pgsql/share/extension/pg_stat_statements.control && \ + # echo 'trusted = true' >> /usr/local/pgsql/share/extension/pgrowlocks.control && \ + # echo 'trusted = true' >> /usr/local/pgsql/share/extension/pgstattuple.control && \ + # echo 'trusted = true' >> /usr/local/pgsql/share/extension/refint.control && \ + # echo 'trusted = true' >> /usr/local/pgsql/share/extension/xml2.control && \ + # # We need to grant EXECUTE on pg_stat_statements_reset() to neon_superuser. + # # In vanilla postgres this function is limited to Postgres role superuser. + # # In neon we have neon_superuser role that is not a superuser but replaces superuser in some cases. + # # We could add the additional grant statements to the postgres repository but it would be hard to maintain, + # # whenever we need to pick up a new postgres version and we want to limit the changes in our postgres fork, + # # so we do it here. + # old_list="pg_stat_statements--1.0--1.1.sql pg_stat_statements--1.1--1.2.sql pg_stat_statements--1.2--1.3.sql pg_stat_statements--1.3--1.4.sql pg_stat_statements--1.4--1.5.sql pg_stat_statements--1.4.sql pg_stat_statements--1.5--1.6.sql"; \ + # # the first loop is for pg_stat_statement extension version <= 1.6 + # for file in /usr/local/pgsql/share/extension/pg_stat_statements--*.sql; do \ + # filename=$(basename "$file"); \ + # if echo "$old_list" | grep -q -F "$filename"; then \ + # echo 'GRANT EXECUTE ON FUNCTION pg_stat_statements_reset() TO neon_superuser;' >> $file; \ + # fi; \ + # done; \ + # # the second loop is for pg_stat_statement extension versions >= 1.7, + # # where pg_stat_statement_reset() got 3 additional arguments + # for file in /usr/local/pgsql/share/extension/pg_stat_statements--*.sql; do \ + # filename=$(basename "$file"); \ + # if ! echo "$old_list" | grep -q -F "$filename"; then \ + # echo 'GRANT EXECUTE ON FUNCTION pg_stat_statements_reset(Oid, Oid, bigint) TO neon_superuser;' >> $file; \ + # fi; \ + # done # ######################################################################################### # # @@ -839,20 +843,20 @@ RUN cd postgres && \ # -C pgxn/hnsw \ # -s install # -# ######################################################################################### -# # -# # Compile and run the Neon-specific `compute_ctl` binary -# # -# ######################################################################################### -# 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 +# Compile and run the Neon-specific `compute_ctl` binary # +######################################################################################### +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 @@ -871,7 +875,7 @@ RUN cd postgres && \ # # can now remove these files - they must be included in other binaries by now # # if they were to be used by other libraries. # RUN rm /usr/local/pgsql/lib/lib*.a -# + ######################################################################################### # # Final layer @@ -891,7 +895,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 COPY --from=compute-tools --chown=postgres /home/nonroot/target/release-line-debug-size-lto/compute_ctl /usr/local/bin/compute_ctl # Install: @@ -931,5 +935,5 @@ RUN apt update && \ 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"] +# USER postgres +# ENTRYPOINT ["/usr/local/bin/compute_ctl"]