From a744ee8a617a97187e7fe2282237d0bc1c3d4adb Mon Sep 17 00:00:00 2001 From: naisila Date: Wed, 12 Mar 2025 16:06:32 +0300 Subject: [PATCH 01/21] Bump to 15.12, 16.8, 17.4. Drop pg14 --- circleci/images/PG_VERSIONS | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/circleci/images/PG_VERSIONS b/circleci/images/PG_VERSIONS index 01757ad..0b8c348 100644 --- a/circleci/images/PG_VERSIONS +++ b/circleci/images/PG_VERSIONS @@ -1,4 +1,3 @@ -PG14=14.14 -PG15=15.9 -PG16=16.5 -PG17=17.1 +PG15=15.12 +PG16=16.8 +PG17=17.4 From 660aa7a139c4017be57ec2549a21cd8cdf43300c Mon Sep 17 00:00:00 2001 From: naisila Date: Wed, 12 Mar 2025 16:25:53 +0300 Subject: [PATCH 02/21] Try permissions: write-all --- .github/workflows/build-test-images.yml | 3 +++ circleci/images/Makefile | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-test-images.yml b/.github/workflows/build-test-images.yml index 1321eb0..ce9d096 100644 --- a/.github/workflows/build-test-images.yml +++ b/.github/workflows/build-test-images.yml @@ -23,6 +23,7 @@ jobs: if: github.ref_name != 'master' name: push-test-images-for-dev runs-on: ubuntu-latest + permissions: write-all needs: - prepare_pgversion_matrix strategy: @@ -55,6 +56,7 @@ jobs: if: github.ref_name != 'master' name: push-test-images-for-dev runs-on: ubuntu-latest + permissions: write-all strategy: fail-fast: false matrix: @@ -85,6 +87,7 @@ jobs: if: github.ref_name == 'master' name: push-test-images-for-release runs-on: ubuntu-latest + permissions: write-all strategy: fail-fast: false diff --git a/circleci/images/Makefile b/circleci/images/Makefile index 0389901..7396e2b 100644 --- a/circleci/images/Makefile +++ b/circleci/images/Makefile @@ -18,8 +18,8 @@ STYLE_CHECKER_TOOLS_VERSION=0.8.18 # we should add more majors/citus versions when we address https://github.com/citusdata/citus/issues/4807 CITUS_UPGRADE_PG_VERSIONS=$(shell head -n1 PG_VERSIONS|cut -c 6-|tr '\n' ' ' ) -# 10.2.0 is the oldest version supporting PG14, whereas 11.3.0 is for upgrade_pg_dist_cleanup tests -CITUS_UPGRADE_VERSIONS=v10.2.0 v11.3.0 +# 11.1.0 is the oldest version supporting PG15, whereas 11.3.0 is for upgrade_pg_dist_cleanup tests +CITUS_UPGRADE_VERSIONS=v11.1.0 v11.3.0 # code below creates targets for all postgres versions in PG_VERSIONS define make-image-targets From 4dc2d11dab9aab0e3eff2abd386f52dde3ef2fc4 Mon Sep 17 00:00:00 2001 From: Mehmet Yilmaz Date: Thu, 8 May 2025 16:11:26 +0300 Subject: [PATCH 03/21] Update Dockerfiles and PG_VERSIONS to include PostgreSQL 18 support --- circleci/images/Makefile | 3 ++- circleci/images/PG_VERSIONS | 1 + circleci/images/extbuilder/Dockerfile | 11 ++++++++++- circleci/images/exttester/Dockerfile | 5 +++-- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/circleci/images/Makefile b/circleci/images/Makefile index 7396e2b..7eb2c57 100644 --- a/circleci/images/Makefile +++ b/circleci/images/Makefile @@ -87,7 +87,8 @@ push-failtester-all:: push-failtester-$1 endef # call make-image-targets($PG_VERSION, $PG_MAJOR) for every version in PG_VERSIONS -$(foreach element,$(PG_VERSIONS),$(eval $(call make-image-targets,$(element),$(shell echo $(element) | awk -F'[^0-9]*' '/[0-9]/ { print $$1 }'),$(shell echo $(element) | sed 's/~//')))) +#$(foreach element,$(PG_VERSIONS),$(eval $(call make-image-targets,$(element),$(shell echo $(element) | awk -F'[^0-9]*' '/[0-9]/ { print $$1 }'),$(shell echo $(element) | sed 's/~//')))) +$(foreach element,$(PG_VERSIONS),$(eval $(call make-image-targets,$(element),$(shell echo $(element)|awk -F'[^0-9]*' '/[0-9]/{print$$1}'),$(subst ~,,$(element))))) define make-citus-upgrage-targets # $1 = PG_VERSION diff --git a/circleci/images/PG_VERSIONS b/circleci/images/PG_VERSIONS index 0b8c348..51ae6da 100644 --- a/circleci/images/PG_VERSIONS +++ b/circleci/images/PG_VERSIONS @@ -1,3 +1,4 @@ +PG18=18~~devel.20250502 PG15=15.12 PG16=16.8 PG17=17.4 diff --git a/circleci/images/extbuilder/Dockerfile b/circleci/images/extbuilder/Dockerfile index d7e6e18..6c59d4d 100644 --- a/circleci/images/extbuilder/Dockerfile +++ b/circleci/images/extbuilder/Dockerfile @@ -51,10 +51,19 @@ curl -sf https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg main" >> /etc/apt/sources.list.d/postgresql.list echo "deb https://apt-archive.postgresql.org/pub/repos/apt bullseye-pgdg-archive main" >> /etc/apt/sources.list.d/postgresql.list +# # bring in the 18 devel/beta packages +echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg-testing main 18" >> /etc/apt/sources.list.d/pgdg-testing.list + apt-get update # infer the pgdgversion of postgres based on the $PG_VERSION -pgdg_version=$(apt list -a postgresql-server-dev-${PG_MAJOR} 2>/dev/null | grep "${PG_VERSION}" | awk '{print $2}' | head -n1 ) +#pgdg_version=$(apt list -a postgresql-server-dev-${PG_MAJOR} 2>/dev/null | grep "${PG_VERSION}" | awk '{print $2}' | head -n1 ) + +pgdg_version=$( + apt-cache policy postgresql-server-dev-${PG_MAJOR} \ + | awk '/Candidate:/ { print $2; exit }' +) +echo "⟵ pgdg_version = »${pgdg_version}«" apt-get install -y --no-install-recommends --allow-downgrades \ libpq-dev=${pgdg_version} \ diff --git a/circleci/images/exttester/Dockerfile b/circleci/images/exttester/Dockerfile index 02bd74c..3c200da 100644 --- a/circleci/images/exttester/Dockerfile +++ b/circleci/images/exttester/Dockerfile @@ -157,14 +157,15 @@ curl -sf https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg main" >> /etc/apt/sources.list.d/postgresql.list echo "deb https://apt-archive.postgresql.org/pub/repos/apt bullseye-pgdg-archive main" >> /etc/apt/sources.list.d/postgresql.list +# # bring in the 18 devel/beta packages +echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg-testing main 18" >> /etc/apt/sources.list.d/pgdg-testing.list + apt-get update # infer the pgdgversion of postgres based on the $PG_VERSION pgdg_version=$(apt list -a postgresql-server-dev-${PG_MAJOR} 2>/dev/null | grep "${PG_VERSION}" | awk '{print $2}' | head -n1 ) apt-get install -y --no-install-recommends --allow-downgrades \ - libdbi-perl \ - libdbd-pg-perl \ libpq-dev=${pgdg_version} \ libpq5=${pgdg_version} \ postgresql-${PG_MAJOR}=${pgdg_version} \ From 3bae8b2fe6a9547ba5bd854aad61051e62e09cce Mon Sep 17 00:00:00 2001 From: Mehmet Yilmaz Date: Thu, 8 May 2025 19:04:40 +0300 Subject: [PATCH 04/21] Add PostgreSQL 18 support in Dockerfiles and PG_VERSIONS --- circleci/images/PG_VERSIONS | 2 +- circleci/images/citusupgradetester/Dockerfile | 3 +++ circleci/images/extbuilder/Dockerfile | 8 +------- circleci/images/failtester/Dockerfile | 3 +++ circleci/images/pgupgradetester/Dockerfile | 3 +++ 5 files changed, 11 insertions(+), 8 deletions(-) diff --git a/circleci/images/PG_VERSIONS b/circleci/images/PG_VERSIONS index 51ae6da..da5d8d7 100644 --- a/circleci/images/PG_VERSIONS +++ b/circleci/images/PG_VERSIONS @@ -1,4 +1,4 @@ -PG18=18~~devel.20250502 PG15=15.12 PG16=16.8 PG17=17.4 +PG18=18~beta1 diff --git a/circleci/images/citusupgradetester/Dockerfile b/circleci/images/citusupgradetester/Dockerfile index fde5af2..0bed8d0 100644 --- a/circleci/images/citusupgradetester/Dockerfile +++ b/circleci/images/citusupgradetester/Dockerfile @@ -62,6 +62,9 @@ curl -sf https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg main" >> /etc/apt/sources.list.d/postgresql.list echo "deb https://apt-archive.postgresql.org/pub/repos/apt bullseye-pgdg-archive main" >> /etc/apt/sources.list.d/postgresql.list +# # bring in the 18 devel/beta packages +echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg-testing main 18" >> /etc/apt/sources.list.d/pgdg-testing.list + apt-get update # infer the pgdgversion of postgres based on the $PG_VERSION diff --git a/circleci/images/extbuilder/Dockerfile b/circleci/images/extbuilder/Dockerfile index 6c59d4d..58c4a54 100644 --- a/circleci/images/extbuilder/Dockerfile +++ b/circleci/images/extbuilder/Dockerfile @@ -57,13 +57,7 @@ echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg-testing main 18 apt-get update # infer the pgdgversion of postgres based on the $PG_VERSION -#pgdg_version=$(apt list -a postgresql-server-dev-${PG_MAJOR} 2>/dev/null | grep "${PG_VERSION}" | awk '{print $2}' | head -n1 ) - -pgdg_version=$( - apt-cache policy postgresql-server-dev-${PG_MAJOR} \ - | awk '/Candidate:/ { print $2; exit }' -) -echo "⟵ pgdg_version = »${pgdg_version}«" +pgdg_version=$(apt list -a postgresql-server-dev-${PG_MAJOR} 2>/dev/null | grep "${PG_VERSION}" | awk '{print $2}' | head -n1 ) apt-get install -y --no-install-recommends --allow-downgrades \ libpq-dev=${pgdg_version} \ diff --git a/circleci/images/failtester/Dockerfile b/circleci/images/failtester/Dockerfile index 62cbeb7..708c118 100644 --- a/circleci/images/failtester/Dockerfile +++ b/circleci/images/failtester/Dockerfile @@ -61,6 +61,9 @@ curl -sf https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg main" >> /etc/apt/sources.list.d/postgresql.list echo "deb https://apt-archive.postgresql.org/pub/repos/apt bullseye-pgdg-archive main" >> /etc/apt/sources.list.d/postgresql.list +# # bring in the 18 devel/beta packages +echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg-testing main 18" >> /etc/apt/sources.list.d/pgdg-testing.list + apt-get update # infer the pgdgversion of postgres based on the $PG_VERSION diff --git a/circleci/images/pgupgradetester/Dockerfile b/circleci/images/pgupgradetester/Dockerfile index 429fe7a..9657bd3 100644 --- a/circleci/images/pgupgradetester/Dockerfile +++ b/circleci/images/pgupgradetester/Dockerfile @@ -62,6 +62,9 @@ curl -sf https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg main" >> /etc/apt/sources.list.d/postgresql.list echo "deb https://apt-archive.postgresql.org/pub/repos/apt bullseye-pgdg-archive main" >> /etc/apt/sources.list.d/postgresql.list +# # bring in the 18 devel/beta packages +echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg-testing main 18" >> /etc/apt/sources.list.d/pgdg-testing.list + apt-get update pkgs=(); From c26fa4f1f2bffc10ffa9ce8c1491dd2c6cb1022d Mon Sep 17 00:00:00 2001 From: Mehmet Yilmaz Date: Tue, 20 May 2025 21:58:26 +0300 Subject: [PATCH 05/21] Add libpq5 dependency to multiple Dockerfiles --- circleci/images/citusupgradetester/Dockerfile | 3 ++- circleci/images/extbuilder/Dockerfile | 3 ++- circleci/images/exttester/Dockerfile | 4 +++- circleci/images/failtester/Dockerfile | 3 ++- circleci/images/pgupgradetester/Dockerfile | 1 + 5 files changed, 10 insertions(+), 4 deletions(-) diff --git a/circleci/images/citusupgradetester/Dockerfile b/circleci/images/citusupgradetester/Dockerfile index 0bed8d0..3dfba8f 100644 --- a/circleci/images/citusupgradetester/Dockerfile +++ b/circleci/images/citusupgradetester/Dockerfile @@ -23,6 +23,7 @@ apt-get install -y --no-install-recommends \ lcov \ libcurl4 \ libcurl4-openssl-dev \ + libpq5 \ libicu-dev \ liblz4-1 \ liblz4-dev \ @@ -72,7 +73,7 @@ pgdg_version=$(apt list -a postgresql-server-dev-${PG_MAJOR} 2>/dev/null | grep apt-get install -y --no-install-recommends --allow-downgrades \ libpq-dev=${pgdg_version} \ - libpq5=${pgdg_version} \ +# libpq5=${pgdg_version} \ postgresql-${PG_MAJOR}=${pgdg_version} \ postgresql-client-${PG_MAJOR}=${pgdg_version} \ postgresql-${PG_MAJOR}-dbgsym=${pgdg_version} \ diff --git a/circleci/images/extbuilder/Dockerfile b/circleci/images/extbuilder/Dockerfile index 58c4a54..e674229 100644 --- a/circleci/images/extbuilder/Dockerfile +++ b/circleci/images/extbuilder/Dockerfile @@ -20,6 +20,7 @@ apt-get install -y --no-install-recommends \ gosu \ libcurl4 \ libcurl4-openssl-dev \ + libpq5 \ libicu-dev \ liblz4-1 \ liblz4-dev \ @@ -61,7 +62,7 @@ pgdg_version=$(apt list -a postgresql-server-dev-${PG_MAJOR} 2>/dev/null | grep apt-get install -y --no-install-recommends --allow-downgrades \ libpq-dev=${pgdg_version} \ - libpq5=${pgdg_version} \ +# libpq5=${pgdg_version} \ postgresql-${PG_MAJOR}=${pgdg_version} \ postgresql-client-${PG_MAJOR}=${pgdg_version} \ postgresql-${PG_MAJOR}-dbgsym=${pgdg_version} \ diff --git a/circleci/images/exttester/Dockerfile b/circleci/images/exttester/Dockerfile index 3c200da..044f7e4 100644 --- a/circleci/images/exttester/Dockerfile +++ b/circleci/images/exttester/Dockerfile @@ -20,6 +20,7 @@ apt-get install -y --no-install-recommends \ gosu \ libcurl4 \ libcurl4-openssl-dev \ + libpq5 \ libicu-dev \ liblz4-1 \ liblz4-dev \ @@ -110,6 +111,7 @@ apt-get install -y --no-install-recommends \ lcov \ libcurl4 \ libcurl4-openssl-dev \ + libpq5 \ libicu-dev \ liblz4-1 \ liblz4-dev \ @@ -167,7 +169,7 @@ pgdg_version=$(apt list -a postgresql-server-dev-${PG_MAJOR} 2>/dev/null | grep apt-get install -y --no-install-recommends --allow-downgrades \ libpq-dev=${pgdg_version} \ - libpq5=${pgdg_version} \ +# libpq5=${pgdg_version} \ postgresql-${PG_MAJOR}=${pgdg_version} \ postgresql-client-${PG_MAJOR}=${pgdg_version} \ postgresql-${PG_MAJOR}-dbgsym=${pgdg_version} \ diff --git a/circleci/images/failtester/Dockerfile b/circleci/images/failtester/Dockerfile index 708c118..02c1db2 100644 --- a/circleci/images/failtester/Dockerfile +++ b/circleci/images/failtester/Dockerfile @@ -22,6 +22,7 @@ apt-get install -y --no-install-recommends \ lcov \ libcurl4 \ libcurl4-openssl-dev \ + libpq5 \ libicu-dev \ liblz4-1 \ liblz4-dev \ @@ -71,7 +72,7 @@ pgdg_version=$(apt list -a postgresql-server-dev-${PG_MAJOR} 2>/dev/null | grep apt-get install -y --no-install-recommends --allow-downgrades \ libpq-dev=${pgdg_version} \ - libpq5=${pgdg_version} \ +# libpq5=${pgdg_version} \ postgresql-${PG_MAJOR}=${pgdg_version} \ postgresql-client-${PG_MAJOR}=${pgdg_version} \ postgresql-${PG_MAJOR}-dbgsym=${pgdg_version} \ diff --git a/circleci/images/pgupgradetester/Dockerfile b/circleci/images/pgupgradetester/Dockerfile index 9657bd3..1ba5ff5 100644 --- a/circleci/images/pgupgradetester/Dockerfile +++ b/circleci/images/pgupgradetester/Dockerfile @@ -24,6 +24,7 @@ apt-get install -y --no-install-recommends \ lcov \ libcurl4 \ libcurl4-openssl-dev \ + libpq5 \ libicu-dev \ liblz4-1 \ liblz4-dev \ From 97620df93abcdb4007cb6356e6fcb060be29b0bd Mon Sep 17 00:00:00 2001 From: Mehmet Yilmaz Date: Tue, 20 May 2025 22:20:32 +0300 Subject: [PATCH 06/21] Remove libpq5 from multiple Dockerfiles and update installation to use specific version --- circleci/images/citusupgradetester/Dockerfile | 3 +-- circleci/images/extbuilder/Dockerfile | 3 +-- circleci/images/exttester/Dockerfile | 4 +--- circleci/images/failtester/Dockerfile | 3 +-- circleci/images/pgupgradetester/Dockerfile | 1 - 5 files changed, 4 insertions(+), 10 deletions(-) diff --git a/circleci/images/citusupgradetester/Dockerfile b/circleci/images/citusupgradetester/Dockerfile index 3dfba8f..0fce718 100644 --- a/circleci/images/citusupgradetester/Dockerfile +++ b/circleci/images/citusupgradetester/Dockerfile @@ -23,7 +23,6 @@ apt-get install -y --no-install-recommends \ lcov \ libcurl4 \ libcurl4-openssl-dev \ - libpq5 \ libicu-dev \ liblz4-1 \ liblz4-dev \ @@ -72,8 +71,8 @@ apt-get update pgdg_version=$(apt list -a postgresql-server-dev-${PG_MAJOR} 2>/dev/null | grep "${PG_VERSION}" | awk '{print $2}' | head -n1 ) apt-get install -y --no-install-recommends --allow-downgrades \ + libpq5=${pgdg_version} \ libpq-dev=${pgdg_version} \ -# libpq5=${pgdg_version} \ postgresql-${PG_MAJOR}=${pgdg_version} \ postgresql-client-${PG_MAJOR}=${pgdg_version} \ postgresql-${PG_MAJOR}-dbgsym=${pgdg_version} \ diff --git a/circleci/images/extbuilder/Dockerfile b/circleci/images/extbuilder/Dockerfile index e674229..c684c61 100644 --- a/circleci/images/extbuilder/Dockerfile +++ b/circleci/images/extbuilder/Dockerfile @@ -20,7 +20,6 @@ apt-get install -y --no-install-recommends \ gosu \ libcurl4 \ libcurl4-openssl-dev \ - libpq5 \ libicu-dev \ liblz4-1 \ liblz4-dev \ @@ -61,8 +60,8 @@ apt-get update pgdg_version=$(apt list -a postgresql-server-dev-${PG_MAJOR} 2>/dev/null | grep "${PG_VERSION}" | awk '{print $2}' | head -n1 ) apt-get install -y --no-install-recommends --allow-downgrades \ + libpq5=${pgdg_version} libpq-dev=${pgdg_version} \ -# libpq5=${pgdg_version} \ postgresql-${PG_MAJOR}=${pgdg_version} \ postgresql-client-${PG_MAJOR}=${pgdg_version} \ postgresql-${PG_MAJOR}-dbgsym=${pgdg_version} \ diff --git a/circleci/images/exttester/Dockerfile b/circleci/images/exttester/Dockerfile index 044f7e4..7064eaf 100644 --- a/circleci/images/exttester/Dockerfile +++ b/circleci/images/exttester/Dockerfile @@ -20,7 +20,6 @@ apt-get install -y --no-install-recommends \ gosu \ libcurl4 \ libcurl4-openssl-dev \ - libpq5 \ libicu-dev \ liblz4-1 \ liblz4-dev \ @@ -111,7 +110,6 @@ apt-get install -y --no-install-recommends \ lcov \ libcurl4 \ libcurl4-openssl-dev \ - libpq5 \ libicu-dev \ liblz4-1 \ liblz4-dev \ @@ -168,8 +166,8 @@ apt-get update pgdg_version=$(apt list -a postgresql-server-dev-${PG_MAJOR} 2>/dev/null | grep "${PG_VERSION}" | awk '{print $2}' | head -n1 ) apt-get install -y --no-install-recommends --allow-downgrades \ + libpq5=${pgdg_version} \ libpq-dev=${pgdg_version} \ -# libpq5=${pgdg_version} \ postgresql-${PG_MAJOR}=${pgdg_version} \ postgresql-client-${PG_MAJOR}=${pgdg_version} \ postgresql-${PG_MAJOR}-dbgsym=${pgdg_version} \ diff --git a/circleci/images/failtester/Dockerfile b/circleci/images/failtester/Dockerfile index 02c1db2..ef90b12 100644 --- a/circleci/images/failtester/Dockerfile +++ b/circleci/images/failtester/Dockerfile @@ -22,7 +22,6 @@ apt-get install -y --no-install-recommends \ lcov \ libcurl4 \ libcurl4-openssl-dev \ - libpq5 \ libicu-dev \ liblz4-1 \ liblz4-dev \ @@ -71,8 +70,8 @@ apt-get update pgdg_version=$(apt list -a postgresql-server-dev-${PG_MAJOR} 2>/dev/null | grep "${PG_VERSION}" | awk '{print $2}' | head -n1 ) apt-get install -y --no-install-recommends --allow-downgrades \ + libpq5=${pgdg_version} \ libpq-dev=${pgdg_version} \ -# libpq5=${pgdg_version} \ postgresql-${PG_MAJOR}=${pgdg_version} \ postgresql-client-${PG_MAJOR}=${pgdg_version} \ postgresql-${PG_MAJOR}-dbgsym=${pgdg_version} \ diff --git a/circleci/images/pgupgradetester/Dockerfile b/circleci/images/pgupgradetester/Dockerfile index 1ba5ff5..9657bd3 100644 --- a/circleci/images/pgupgradetester/Dockerfile +++ b/circleci/images/pgupgradetester/Dockerfile @@ -24,7 +24,6 @@ apt-get install -y --no-install-recommends \ lcov \ libcurl4 \ libcurl4-openssl-dev \ - libpq5 \ libicu-dev \ liblz4-1 \ liblz4-dev \ From 3a07d7e6e64b8513381494e8152ce954b9461df9 Mon Sep 17 00:00:00 2001 From: Mehmet Yilmaz Date: Tue, 20 May 2025 22:26:20 +0300 Subject: [PATCH 07/21] Update Dockerfile to install libpq5 alongside other PostgreSQL packages --- circleci/images/extbuilder/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circleci/images/extbuilder/Dockerfile b/circleci/images/extbuilder/Dockerfile index c684c61..2edc9ea 100644 --- a/circleci/images/extbuilder/Dockerfile +++ b/circleci/images/extbuilder/Dockerfile @@ -60,7 +60,7 @@ apt-get update pgdg_version=$(apt list -a postgresql-server-dev-${PG_MAJOR} 2>/dev/null | grep "${PG_VERSION}" | awk '{print $2}' | head -n1 ) apt-get install -y --no-install-recommends --allow-downgrades \ - libpq5=${pgdg_version} + libpq5=${pgdg_version} \ libpq-dev=${pgdg_version} \ postgresql-${PG_MAJOR}=${pgdg_version} \ postgresql-client-${PG_MAJOR}=${pgdg_version} \ From e010aaeb18b3753f84a4f7bb366b83de35094a55 Mon Sep 17 00:00:00 2001 From: Mehmet Yilmaz Date: Tue, 20 May 2025 23:03:18 +0300 Subject: [PATCH 08/21] Add symlink for libpq and update loader cache in Dockerfiles --- circleci/images/citusupgradetester/Dockerfile | 17 +++++++++++++++-- circleci/images/extbuilder/Dockerfile | 17 +++++++++++++++-- circleci/images/exttester/Dockerfile | 15 ++++++++++++++- circleci/images/failtester/Dockerfile | 17 +++++++++++++++-- 4 files changed, 59 insertions(+), 7 deletions(-) diff --git a/circleci/images/citusupgradetester/Dockerfile b/circleci/images/citusupgradetester/Dockerfile index 0fce718..5353114 100644 --- a/circleci/images/citusupgradetester/Dockerfile +++ b/circleci/images/citusupgradetester/Dockerfile @@ -78,10 +78,23 @@ apt-get install -y --no-install-recommends --allow-downgrades \ postgresql-${PG_MAJOR}-dbgsym=${pgdg_version} \ postgresql-server-dev-${PG_MAJOR}=${pgdg_version} \ -# clear apt cache -rm -rf /var/lib/apt/lists/* +# -------------------------------------------------------------------- +# libpq lives in /usr/lib/x86_64-linux-gnu, but every PostgreSQL binary +# looks first in $ORIGIN/../lib (→ /usr/lib/postgresql/${PG_MAJOR}/lib). +# Drop one symlink there and refresh the loader cache so initdb/psql/etc. +# can start without LD_LIBRARY_PATH. +# -------------------------------------------------------------------- + + # clear apt cache +rm -rf /var/lib/apt/lists/* && \ + +ln -s /usr/lib/x86_64-linux-gnu/libpq.so.5 \ + /usr/lib/postgresql/${PG_MAJOR}/lib/libpq.so.5 && \ +echo "/usr/lib/x86_64-linux-gnu" > /etc/ld.so.conf.d/libpq.conf && \ +ldconfig EOF + # add postgress to the path ENV PATH=/usr/lib/postgresql/$PG_MAJOR/bin/:$PATH diff --git a/circleci/images/extbuilder/Dockerfile b/circleci/images/extbuilder/Dockerfile index 2edc9ea..75c2d02 100644 --- a/circleci/images/extbuilder/Dockerfile +++ b/circleci/images/extbuilder/Dockerfile @@ -67,9 +67,22 @@ apt-get install -y --no-install-recommends --allow-downgrades \ postgresql-${PG_MAJOR}-dbgsym=${pgdg_version} \ postgresql-server-dev-${PG_MAJOR}=${pgdg_version} -# clear apt cache -rm -rf /var/lib/apt/lists/* +# -------------------------------------------------------------------- +# libpq lives in /usr/lib/x86_64-linux-gnu, but every PostgreSQL binary +# looks first in $ORIGIN/../lib (→ /usr/lib/postgresql/${PG_MAJOR}/lib). +# Drop one symlink there and refresh the loader cache so initdb/psql/etc. +# can start without LD_LIBRARY_PATH. +# -------------------------------------------------------------------- + + # clear apt cache +rm -rf /var/lib/apt/lists/* && \ + +ln -s /usr/lib/x86_64-linux-gnu/libpq.so.5 \ + /usr/lib/postgresql/${PG_MAJOR}/lib/libpq.so.5 && \ +echo "/usr/lib/x86_64-linux-gnu" > /etc/ld.so.conf.d/libpq.conf && \ +ldconfig EOF + USER circleci WORKDIR /home/circleci diff --git a/circleci/images/exttester/Dockerfile b/circleci/images/exttester/Dockerfile index 7064eaf..31ddaad 100644 --- a/circleci/images/exttester/Dockerfile +++ b/circleci/images/exttester/Dockerfile @@ -174,10 +174,23 @@ apt-get install -y --no-install-recommends --allow-downgrades \ postgresql-server-dev-${PG_MAJOR}=${pgdg_version} \ postgresql-${PG_MAJOR}-wal2json \ +# -------------------------------------------------------------------- +# libpq lives in /usr/lib/x86_64-linux-gnu, but every PostgreSQL binary +# looks first in $ORIGIN/../lib (→ /usr/lib/postgresql/${PG_MAJOR}/lib). +# Drop one symlink there and refresh the loader cache so initdb/psql/etc. +# can start without LD_LIBRARY_PATH. +# -------------------------------------------------------------------- + # clear apt cache -rm -rf /var/lib/apt/lists/* +rm -rf /var/lib/apt/lists/* && \ + +ln -s /usr/lib/x86_64-linux-gnu/libpq.so.5 \ + /usr/lib/postgresql/${PG_MAJOR}/lib/libpq.so.5 && \ +echo "/usr/lib/x86_64-linux-gnu" > /etc/ld.so.conf.d/libpq.conf && \ +ldconfig EOF + # add postgress to the path ENV PATH=/usr/lib/postgresql/$PG_MAJOR/bin/:$PATH diff --git a/circleci/images/failtester/Dockerfile b/circleci/images/failtester/Dockerfile index ef90b12..f1c737a 100644 --- a/circleci/images/failtester/Dockerfile +++ b/circleci/images/failtester/Dockerfile @@ -77,10 +77,23 @@ apt-get install -y --no-install-recommends --allow-downgrades \ postgresql-${PG_MAJOR}-dbgsym=${pgdg_version} \ postgresql-server-dev-${PG_MAJOR}=${pgdg_version} \ -# clear apt cache -rm -rf /var/lib/apt/lists/* +# -------------------------------------------------------------------- +# libpq lives in /usr/lib/x86_64-linux-gnu, but every PostgreSQL binary +# looks first in $ORIGIN/../lib (→ /usr/lib/postgresql/${PG_MAJOR}/lib). +# Drop one symlink there and refresh the loader cache so initdb/psql/etc. +# can start without LD_LIBRARY_PATH. +# -------------------------------------------------------------------- + + # clear apt cache +rm -rf /var/lib/apt/lists/* && \ + +ln -s /usr/lib/x86_64-linux-gnu/libpq.so.5 \ + /usr/lib/postgresql/${PG_MAJOR}/lib/libpq.so.5 && \ +echo "/usr/lib/x86_64-linux-gnu" > /etc/ld.so.conf.d/libpq.conf && \ +ldconfig EOF + # add postgress to the path ENV PATH=/usr/lib/postgresql/$PG_MAJOR/bin/:$PATH From b4bff1ec9a30ee02d5359bc8a38a760419bca180 Mon Sep 17 00:00:00 2001 From: Mehmet Yilmaz Date: Tue, 20 May 2025 23:43:11 +0300 Subject: [PATCH 09/21] Revert "Add symlink for libpq and update loader cache in Dockerfiles" This reverts commit e010aaeb18b3753f84a4f7bb366b83de35094a55. --- circleci/images/citusupgradetester/Dockerfile | 17 ++--------------- circleci/images/extbuilder/Dockerfile | 17 ++--------------- circleci/images/exttester/Dockerfile | 15 +-------------- circleci/images/failtester/Dockerfile | 17 ++--------------- 4 files changed, 7 insertions(+), 59 deletions(-) diff --git a/circleci/images/citusupgradetester/Dockerfile b/circleci/images/citusupgradetester/Dockerfile index 5353114..0fce718 100644 --- a/circleci/images/citusupgradetester/Dockerfile +++ b/circleci/images/citusupgradetester/Dockerfile @@ -78,23 +78,10 @@ apt-get install -y --no-install-recommends --allow-downgrades \ postgresql-${PG_MAJOR}-dbgsym=${pgdg_version} \ postgresql-server-dev-${PG_MAJOR}=${pgdg_version} \ -# -------------------------------------------------------------------- -# libpq lives in /usr/lib/x86_64-linux-gnu, but every PostgreSQL binary -# looks first in $ORIGIN/../lib (→ /usr/lib/postgresql/${PG_MAJOR}/lib). -# Drop one symlink there and refresh the loader cache so initdb/psql/etc. -# can start without LD_LIBRARY_PATH. -# -------------------------------------------------------------------- - - # clear apt cache -rm -rf /var/lib/apt/lists/* && \ - -ln -s /usr/lib/x86_64-linux-gnu/libpq.so.5 \ - /usr/lib/postgresql/${PG_MAJOR}/lib/libpq.so.5 && \ -echo "/usr/lib/x86_64-linux-gnu" > /etc/ld.so.conf.d/libpq.conf && \ -ldconfig +# clear apt cache +rm -rf /var/lib/apt/lists/* EOF - # add postgress to the path ENV PATH=/usr/lib/postgresql/$PG_MAJOR/bin/:$PATH diff --git a/circleci/images/extbuilder/Dockerfile b/circleci/images/extbuilder/Dockerfile index 75c2d02..2edc9ea 100644 --- a/circleci/images/extbuilder/Dockerfile +++ b/circleci/images/extbuilder/Dockerfile @@ -67,22 +67,9 @@ apt-get install -y --no-install-recommends --allow-downgrades \ postgresql-${PG_MAJOR}-dbgsym=${pgdg_version} \ postgresql-server-dev-${PG_MAJOR}=${pgdg_version} -# -------------------------------------------------------------------- -# libpq lives in /usr/lib/x86_64-linux-gnu, but every PostgreSQL binary -# looks first in $ORIGIN/../lib (→ /usr/lib/postgresql/${PG_MAJOR}/lib). -# Drop one symlink there and refresh the loader cache so initdb/psql/etc. -# can start without LD_LIBRARY_PATH. -# -------------------------------------------------------------------- - - # clear apt cache -rm -rf /var/lib/apt/lists/* && \ - -ln -s /usr/lib/x86_64-linux-gnu/libpq.so.5 \ - /usr/lib/postgresql/${PG_MAJOR}/lib/libpq.so.5 && \ -echo "/usr/lib/x86_64-linux-gnu" > /etc/ld.so.conf.d/libpq.conf && \ -ldconfig +# clear apt cache +rm -rf /var/lib/apt/lists/* EOF - USER circleci WORKDIR /home/circleci diff --git a/circleci/images/exttester/Dockerfile b/circleci/images/exttester/Dockerfile index 31ddaad..7064eaf 100644 --- a/circleci/images/exttester/Dockerfile +++ b/circleci/images/exttester/Dockerfile @@ -174,23 +174,10 @@ apt-get install -y --no-install-recommends --allow-downgrades \ postgresql-server-dev-${PG_MAJOR}=${pgdg_version} \ postgresql-${PG_MAJOR}-wal2json \ -# -------------------------------------------------------------------- -# libpq lives in /usr/lib/x86_64-linux-gnu, but every PostgreSQL binary -# looks first in $ORIGIN/../lib (→ /usr/lib/postgresql/${PG_MAJOR}/lib). -# Drop one symlink there and refresh the loader cache so initdb/psql/etc. -# can start without LD_LIBRARY_PATH. -# -------------------------------------------------------------------- - # clear apt cache -rm -rf /var/lib/apt/lists/* && \ - -ln -s /usr/lib/x86_64-linux-gnu/libpq.so.5 \ - /usr/lib/postgresql/${PG_MAJOR}/lib/libpq.so.5 && \ -echo "/usr/lib/x86_64-linux-gnu" > /etc/ld.so.conf.d/libpq.conf && \ -ldconfig +rm -rf /var/lib/apt/lists/* EOF - # add postgress to the path ENV PATH=/usr/lib/postgresql/$PG_MAJOR/bin/:$PATH diff --git a/circleci/images/failtester/Dockerfile b/circleci/images/failtester/Dockerfile index f1c737a..ef90b12 100644 --- a/circleci/images/failtester/Dockerfile +++ b/circleci/images/failtester/Dockerfile @@ -77,23 +77,10 @@ apt-get install -y --no-install-recommends --allow-downgrades \ postgresql-${PG_MAJOR}-dbgsym=${pgdg_version} \ postgresql-server-dev-${PG_MAJOR}=${pgdg_version} \ -# -------------------------------------------------------------------- -# libpq lives in /usr/lib/x86_64-linux-gnu, but every PostgreSQL binary -# looks first in $ORIGIN/../lib (→ /usr/lib/postgresql/${PG_MAJOR}/lib). -# Drop one symlink there and refresh the loader cache so initdb/psql/etc. -# can start without LD_LIBRARY_PATH. -# -------------------------------------------------------------------- - - # clear apt cache -rm -rf /var/lib/apt/lists/* && \ - -ln -s /usr/lib/x86_64-linux-gnu/libpq.so.5 \ - /usr/lib/postgresql/${PG_MAJOR}/lib/libpq.so.5 && \ -echo "/usr/lib/x86_64-linux-gnu" > /etc/ld.so.conf.d/libpq.conf && \ -ldconfig +# clear apt cache +rm -rf /var/lib/apt/lists/* EOF - # add postgress to the path ENV PATH=/usr/lib/postgresql/$PG_MAJOR/bin/:$PATH From e158f05d91e27d562897f5b744f12ab9646fef24 Mon Sep 17 00:00:00 2001 From: Mehmet Yilmaz Date: Tue, 20 May 2025 23:48:05 +0300 Subject: [PATCH 10/21] Add symlink for libpq in multiple Dockerfiles --- circleci/images/citusupgradetester/Dockerfile | 6 ++++++ circleci/images/extbuilder/Dockerfile | 6 ++++++ circleci/images/exttester/Dockerfile | 6 ++++++ circleci/images/failtester/Dockerfile | 6 ++++++ circleci/images/pgupgradetester/Dockerfile | 6 ++++++ 5 files changed, 30 insertions(+) diff --git a/circleci/images/citusupgradetester/Dockerfile b/circleci/images/citusupgradetester/Dockerfile index 0fce718..c233819 100644 --- a/circleci/images/citusupgradetester/Dockerfile +++ b/circleci/images/citusupgradetester/Dockerfile @@ -82,6 +82,12 @@ apt-get install -y --no-install-recommends --allow-downgrades \ rm -rf /var/lib/apt/lists/* EOF +# now do the symlink (outside the heredoc!) in its own layer +RUN ln -s /usr/lib/x86_64-linux-gnu/libpq.so.5 \ + /usr/lib/postgresql/${PG_MAJOR}/lib/libpq.so.5 && \ + echo "/usr/lib/x86_64-linux-gnu" > /etc/ld.so.conf.d/libpq.conf && \ + ldconfig + # add postgress to the path ENV PATH=/usr/lib/postgresql/$PG_MAJOR/bin/:$PATH diff --git a/circleci/images/extbuilder/Dockerfile b/circleci/images/extbuilder/Dockerfile index 2edc9ea..43fa1c7 100644 --- a/circleci/images/extbuilder/Dockerfile +++ b/circleci/images/extbuilder/Dockerfile @@ -71,5 +71,11 @@ apt-get install -y --no-install-recommends --allow-downgrades \ rm -rf /var/lib/apt/lists/* EOF +# now do the symlink (outside the heredoc!) in its own layer +RUN ln -s /usr/lib/x86_64-linux-gnu/libpq.so.5 \ + /usr/lib/postgresql/${PG_MAJOR}/lib/libpq.so.5 && \ + echo "/usr/lib/x86_64-linux-gnu" > /etc/ld.so.conf.d/libpq.conf && \ + ldconfig + USER circleci WORKDIR /home/circleci diff --git a/circleci/images/exttester/Dockerfile b/circleci/images/exttester/Dockerfile index 7064eaf..a48e5e9 100644 --- a/circleci/images/exttester/Dockerfile +++ b/circleci/images/exttester/Dockerfile @@ -178,6 +178,12 @@ apt-get install -y --no-install-recommends --allow-downgrades \ rm -rf /var/lib/apt/lists/* EOF +# now do the symlink (outside the heredoc!) in its own layer +RUN ln -s /usr/lib/x86_64-linux-gnu/libpq.so.5 \ + /usr/lib/postgresql/${PG_MAJOR}/lib/libpq.so.5 && \ + echo "/usr/lib/x86_64-linux-gnu" > /etc/ld.so.conf.d/libpq.conf && \ + ldconfig + # add postgress to the path ENV PATH=/usr/lib/postgresql/$PG_MAJOR/bin/:$PATH diff --git a/circleci/images/failtester/Dockerfile b/circleci/images/failtester/Dockerfile index ef90b12..ff7abb4 100644 --- a/circleci/images/failtester/Dockerfile +++ b/circleci/images/failtester/Dockerfile @@ -81,6 +81,12 @@ apt-get install -y --no-install-recommends --allow-downgrades \ rm -rf /var/lib/apt/lists/* EOF +# now do the symlink (outside the heredoc!) in its own layer +RUN ln -s /usr/lib/x86_64-linux-gnu/libpq.so.5 \ + /usr/lib/postgresql/${PG_MAJOR}/lib/libpq.so.5 && \ + echo "/usr/lib/x86_64-linux-gnu" > /etc/ld.so.conf.d/libpq.conf && \ + ldconfig + # add postgress to the path ENV PATH=/usr/lib/postgresql/$PG_MAJOR/bin/:$PATH diff --git a/circleci/images/pgupgradetester/Dockerfile b/circleci/images/pgupgradetester/Dockerfile index 9657bd3..2c3fc36 100644 --- a/circleci/images/pgupgradetester/Dockerfile +++ b/circleci/images/pgupgradetester/Dockerfile @@ -91,6 +91,12 @@ apt-get install -y --no-install-recommends --allow-downgrades \ rm -rf /var/lib/apt/lists/* EOF +# now do the symlink (outside the heredoc!) in its own layer +RUN ln -s /usr/lib/x86_64-linux-gnu/libpq.so.5 \ + /usr/lib/postgresql/${PG_MAJOR}/lib/libpq.so.5 && \ + echo "/usr/lib/x86_64-linux-gnu" > /etc/ld.so.conf.d/libpq.conf && \ + ldconfig + # setup /var/run/postgresql for use with circleci RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod 2777 /var/run/postgresql From 240746c101327bb6d607fc3adf1e05883ecd4cb2 Mon Sep 17 00:00:00 2001 From: Mehmet Yilmaz Date: Wed, 21 May 2025 00:39:32 +0300 Subject: [PATCH 11/21] Remove symlink creation for libpq in Dockerfile --- circleci/images/pgupgradetester/Dockerfile | 6 ------ 1 file changed, 6 deletions(-) diff --git a/circleci/images/pgupgradetester/Dockerfile b/circleci/images/pgupgradetester/Dockerfile index 2c3fc36..9657bd3 100644 --- a/circleci/images/pgupgradetester/Dockerfile +++ b/circleci/images/pgupgradetester/Dockerfile @@ -91,12 +91,6 @@ apt-get install -y --no-install-recommends --allow-downgrades \ rm -rf /var/lib/apt/lists/* EOF -# now do the symlink (outside the heredoc!) in its own layer -RUN ln -s /usr/lib/x86_64-linux-gnu/libpq.so.5 \ - /usr/lib/postgresql/${PG_MAJOR}/lib/libpq.so.5 && \ - echo "/usr/lib/x86_64-linux-gnu" > /etc/ld.so.conf.d/libpq.conf && \ - ldconfig - # setup /var/run/postgresql for use with circleci RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod 2777 /var/run/postgresql From 95ca2cc7d883268f179014b73e336e25bab4e235 Mon Sep 17 00:00:00 2001 From: Mehmet Yilmaz Date: Wed, 21 May 2025 00:56:38 +0300 Subject: [PATCH 12/21] Add --no-cache option to docker build for exttester --- circleci/images/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circleci/images/Makefile b/circleci/images/Makefile index 7eb2c57..6fbf1ca 100644 --- a/circleci/images/Makefile +++ b/circleci/images/Makefile @@ -47,7 +47,7 @@ push-all:: push-extbuilder-$1 push-extbuilder-all:: push-extbuilder-$1 build-exttester-$1: - docker build \ + docker build --no-cache \ exttester/ \ -f exttester/Dockerfile \ --build-arg=PG_VERSION=$1 \ From fb2c6feb3bd1ee28befb0d2b4aaf2810340eaa07 Mon Sep 17 00:00:00 2001 From: Mehmet Yilmaz Date: Wed, 21 May 2025 01:00:59 +0300 Subject: [PATCH 13/21] Update Dockerfile and Makefile to remove --no-cache option and copy helper binaries --- circleci/images/Makefile | 2 +- circleci/images/exttester/Dockerfile | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/circleci/images/Makefile b/circleci/images/Makefile index 6fbf1ca..7eb2c57 100644 --- a/circleci/images/Makefile +++ b/circleci/images/Makefile @@ -47,7 +47,7 @@ push-all:: push-extbuilder-$1 push-extbuilder-all:: push-extbuilder-$1 build-exttester-$1: - docker build --no-cache \ + docker build \ exttester/ \ -f exttester/Dockerfile \ --build-arg=PG_VERSION=$1 \ diff --git a/circleci/images/exttester/Dockerfile b/circleci/images/exttester/Dockerfile index a48e5e9..3233522 100644 --- a/circleci/images/exttester/Dockerfile +++ b/circleci/images/exttester/Dockerfile @@ -178,6 +178,9 @@ apt-get install -y --no-install-recommends --allow-downgrades \ rm -rf /var/lib/apt/lists/* EOF +# ---------- copy helper binaries ---------- +COPY --from=dev-tools-collection /collect/ / + # now do the symlink (outside the heredoc!) in its own layer RUN ln -s /usr/lib/x86_64-linux-gnu/libpq.so.5 \ /usr/lib/postgresql/${PG_MAJOR}/lib/libpq.so.5 && \ From 70285a8abf3f8ce84ae1444ca81326b3a0150cf5 Mon Sep 17 00:00:00 2001 From: Mehmet Yilmaz Date: Wed, 21 May 2025 01:11:38 +0300 Subject: [PATCH 14/21] Update Dockerfile to reinstall libpq5 and create symlink for libpq --- circleci/images/exttester/Dockerfile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/circleci/images/exttester/Dockerfile b/circleci/images/exttester/Dockerfile index 3233522..cc84ad9 100644 --- a/circleci/images/exttester/Dockerfile +++ b/circleci/images/exttester/Dockerfile @@ -182,7 +182,11 @@ EOF COPY --from=dev-tools-collection /collect/ / # now do the symlink (outside the heredoc!) in its own layer -RUN ln -s /usr/lib/x86_64-linux-gnu/libpq.so.5 \ +RUN apt-get update && \ + apt-get install -y --no-install-recommends --reinstall libpq5 && \ + rm -rf /var/lib/apt/lists/* && \ +# 4. satisfy RUNPATH + ln -sf /usr/lib/x86_64-linux-gnu/libpq.so.5 \ /usr/lib/postgresql/${PG_MAJOR}/lib/libpq.so.5 && \ echo "/usr/lib/x86_64-linux-gnu" > /etc/ld.so.conf.d/libpq.conf && \ ldconfig From d306281ff2194d5e16a873983ce42a45cb21367e Mon Sep 17 00:00:00 2001 From: Mehmet Yilmaz Date: Wed, 21 May 2025 11:05:16 +0300 Subject: [PATCH 15/21] Reinstall libpq5 and set LD_PRELOAD in Dockerfiles for extbuilder and exttester --- circleci/images/extbuilder/Dockerfile | 10 +++++++++- circleci/images/exttester/Dockerfile | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/circleci/images/extbuilder/Dockerfile b/circleci/images/extbuilder/Dockerfile index 43fa1c7..93c33e1 100644 --- a/circleci/images/extbuilder/Dockerfile +++ b/circleci/images/extbuilder/Dockerfile @@ -71,11 +71,19 @@ apt-get install -y --no-install-recommends --allow-downgrades \ rm -rf /var/lib/apt/lists/* EOF +# ---------- copy helper binaries ---------- +COPY --from=dev-tools-collection /collect/ / + # now do the symlink (outside the heredoc!) in its own layer -RUN ln -s /usr/lib/x86_64-linux-gnu/libpq.so.5 \ +RUN apt-get update && \ + apt-get install -y --no-install-recommends --reinstall libpq5 && \ + rm -rf /var/lib/apt/lists/* && \ +# 4. satisfy RUNPATH + ln -sf /usr/lib/x86_64-linux-gnu/libpq.so.5 \ /usr/lib/postgresql/${PG_MAJOR}/lib/libpq.so.5 && \ echo "/usr/lib/x86_64-linux-gnu" > /etc/ld.so.conf.d/libpq.conf && \ ldconfig + ENV LD_PRELOAD="/usr/lib/x86_64-linux-gnu/libpq.so.5" USER circleci WORKDIR /home/circleci diff --git a/circleci/images/exttester/Dockerfile b/circleci/images/exttester/Dockerfile index cc84ad9..10d03a6 100644 --- a/circleci/images/exttester/Dockerfile +++ b/circleci/images/exttester/Dockerfile @@ -190,6 +190,7 @@ RUN apt-get update && \ /usr/lib/postgresql/${PG_MAJOR}/lib/libpq.so.5 && \ echo "/usr/lib/x86_64-linux-gnu" > /etc/ld.so.conf.d/libpq.conf && \ ldconfig + ENV LD_PRELOAD="/usr/lib/x86_64-linux-gnu/libpq.so.5" # add postgress to the path ENV PATH=/usr/lib/postgresql/$PG_MAJOR/bin/:$PATH From b0e4c6ea6c573a91888827345dcff5e0185d7066 Mon Sep 17 00:00:00 2001 From: Mehmet Yilmaz Date: Wed, 21 May 2025 11:07:36 +0300 Subject: [PATCH 16/21] Remove unnecessary installation of libpq5 and LD_PRELOAD environment variable from Dockerfile --- circleci/images/extbuilder/Dockerfile | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/circleci/images/extbuilder/Dockerfile b/circleci/images/extbuilder/Dockerfile index 93c33e1..43fa1c7 100644 --- a/circleci/images/extbuilder/Dockerfile +++ b/circleci/images/extbuilder/Dockerfile @@ -71,19 +71,11 @@ apt-get install -y --no-install-recommends --allow-downgrades \ rm -rf /var/lib/apt/lists/* EOF -# ---------- copy helper binaries ---------- -COPY --from=dev-tools-collection /collect/ / - # now do the symlink (outside the heredoc!) in its own layer -RUN apt-get update && \ - apt-get install -y --no-install-recommends --reinstall libpq5 && \ - rm -rf /var/lib/apt/lists/* && \ -# 4. satisfy RUNPATH - ln -sf /usr/lib/x86_64-linux-gnu/libpq.so.5 \ +RUN ln -s /usr/lib/x86_64-linux-gnu/libpq.so.5 \ /usr/lib/postgresql/${PG_MAJOR}/lib/libpq.so.5 && \ echo "/usr/lib/x86_64-linux-gnu" > /etc/ld.so.conf.d/libpq.conf && \ ldconfig - ENV LD_PRELOAD="/usr/lib/x86_64-linux-gnu/libpq.so.5" USER circleci WORKDIR /home/circleci From aa7482accc884fc6a282d41a2bf8d447c4f995b8 Mon Sep 17 00:00:00 2001 From: Mehmet Yilmaz Date: Wed, 21 May 2025 11:22:23 +0300 Subject: [PATCH 17/21] Update PostgreSQL versions and remove symlink commands from Dockerfiles --- circleci/images/PG_VERSIONS | 6 +++--- circleci/images/citusupgradetester/Dockerfile | 6 ------ circleci/images/extbuilder/Dockerfile | 6 ------ circleci/images/exttester/Dockerfile | 13 ------------- circleci/images/failtester/Dockerfile | 6 ------ 5 files changed, 3 insertions(+), 34 deletions(-) diff --git a/circleci/images/PG_VERSIONS b/circleci/images/PG_VERSIONS index da5d8d7..75543dc 100644 --- a/circleci/images/PG_VERSIONS +++ b/circleci/images/PG_VERSIONS @@ -1,4 +1,4 @@ -PG15=15.12 -PG16=16.8 -PG17=17.4 +PG15=15.13 +PG16=16.9 +PG17=17.5 PG18=18~beta1 diff --git a/circleci/images/citusupgradetester/Dockerfile b/circleci/images/citusupgradetester/Dockerfile index c233819..0fce718 100644 --- a/circleci/images/citusupgradetester/Dockerfile +++ b/circleci/images/citusupgradetester/Dockerfile @@ -82,12 +82,6 @@ apt-get install -y --no-install-recommends --allow-downgrades \ rm -rf /var/lib/apt/lists/* EOF -# now do the symlink (outside the heredoc!) in its own layer -RUN ln -s /usr/lib/x86_64-linux-gnu/libpq.so.5 \ - /usr/lib/postgresql/${PG_MAJOR}/lib/libpq.so.5 && \ - echo "/usr/lib/x86_64-linux-gnu" > /etc/ld.so.conf.d/libpq.conf && \ - ldconfig - # add postgress to the path ENV PATH=/usr/lib/postgresql/$PG_MAJOR/bin/:$PATH diff --git a/circleci/images/extbuilder/Dockerfile b/circleci/images/extbuilder/Dockerfile index 43fa1c7..2edc9ea 100644 --- a/circleci/images/extbuilder/Dockerfile +++ b/circleci/images/extbuilder/Dockerfile @@ -71,11 +71,5 @@ apt-get install -y --no-install-recommends --allow-downgrades \ rm -rf /var/lib/apt/lists/* EOF -# now do the symlink (outside the heredoc!) in its own layer -RUN ln -s /usr/lib/x86_64-linux-gnu/libpq.so.5 \ - /usr/lib/postgresql/${PG_MAJOR}/lib/libpq.so.5 && \ - echo "/usr/lib/x86_64-linux-gnu" > /etc/ld.so.conf.d/libpq.conf && \ - ldconfig - USER circleci WORKDIR /home/circleci diff --git a/circleci/images/exttester/Dockerfile b/circleci/images/exttester/Dockerfile index 10d03a6..c8d484c 100644 --- a/circleci/images/exttester/Dockerfile +++ b/circleci/images/exttester/Dockerfile @@ -178,19 +178,6 @@ apt-get install -y --no-install-recommends --allow-downgrades \ rm -rf /var/lib/apt/lists/* EOF -# ---------- copy helper binaries ---------- -COPY --from=dev-tools-collection /collect/ / - -# now do the symlink (outside the heredoc!) in its own layer -RUN apt-get update && \ - apt-get install -y --no-install-recommends --reinstall libpq5 && \ - rm -rf /var/lib/apt/lists/* && \ -# 4. satisfy RUNPATH - ln -sf /usr/lib/x86_64-linux-gnu/libpq.so.5 \ - /usr/lib/postgresql/${PG_MAJOR}/lib/libpq.so.5 && \ - echo "/usr/lib/x86_64-linux-gnu" > /etc/ld.so.conf.d/libpq.conf && \ - ldconfig - ENV LD_PRELOAD="/usr/lib/x86_64-linux-gnu/libpq.so.5" # add postgress to the path ENV PATH=/usr/lib/postgresql/$PG_MAJOR/bin/:$PATH diff --git a/circleci/images/failtester/Dockerfile b/circleci/images/failtester/Dockerfile index ff7abb4..ef90b12 100644 --- a/circleci/images/failtester/Dockerfile +++ b/circleci/images/failtester/Dockerfile @@ -81,12 +81,6 @@ apt-get install -y --no-install-recommends --allow-downgrades \ rm -rf /var/lib/apt/lists/* EOF -# now do the symlink (outside the heredoc!) in its own layer -RUN ln -s /usr/lib/x86_64-linux-gnu/libpq.so.5 \ - /usr/lib/postgresql/${PG_MAJOR}/lib/libpq.so.5 && \ - echo "/usr/lib/x86_64-linux-gnu" > /etc/ld.so.conf.d/libpq.conf && \ - ldconfig - # add postgress to the path ENV PATH=/usr/lib/postgresql/$PG_MAJOR/bin/:$PATH From 8f3fd61d67aab6a1061c438c4f92e6126420c0a8 Mon Sep 17 00:00:00 2001 From: Mehmet Yilmaz Date: Mon, 14 Jul 2025 21:42:45 +0300 Subject: [PATCH 18/21] Update Dockerfile to install multiple Perl modules for TAP-based tests --- circleci/images/exttester/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/circleci/images/exttester/Dockerfile b/circleci/images/exttester/Dockerfile index c8d484c..5f7c703 100644 --- a/circleci/images/exttester/Dockerfile +++ b/circleci/images/exttester/Dockerfile @@ -133,8 +133,8 @@ EOF RUN curl --proto '=https' --tlsv1.2 --silent --show-error https://sh.rustup.rs | sh -s -- -y ENV PATH="/root/.cargo/bin:${PATH}" -# perl's lib IPC::Run is required to run tap tests -RUN cpanm install IPC::Run +# install the Perl modules needed for all TAP-based tests (CDC, isolation, etc.) +RUN cpanm --notest IPC::Run DBI DBD::Pg # make special locales available COPY locale.gen /etc/locale.gen From 2e90ce31b164cdacd86a6d4b5cb83cb86e34e14e Mon Sep 17 00:00:00 2001 From: Mehmet Yilmaz Date: Mon, 21 Jul 2025 13:22:39 +0300 Subject: [PATCH 19/21] Update PostgreSQL version to 18~beta2 and remove testing repository from Dockerfiles --- circleci/images/PG_VERSIONS | 2 +- circleci/images/citusupgradetester/Dockerfile | 3 --- circleci/images/extbuilder/Dockerfile | 3 --- circleci/images/exttester/Dockerfile | 3 --- circleci/images/failtester/Dockerfile | 3 --- circleci/images/pgupgradetester/Dockerfile | 2 -- 6 files changed, 1 insertion(+), 15 deletions(-) diff --git a/circleci/images/PG_VERSIONS b/circleci/images/PG_VERSIONS index 75543dc..b4ff923 100644 --- a/circleci/images/PG_VERSIONS +++ b/circleci/images/PG_VERSIONS @@ -1,4 +1,4 @@ PG15=15.13 PG16=16.9 PG17=17.5 -PG18=18~beta1 +PG18=18~beta2 diff --git a/circleci/images/citusupgradetester/Dockerfile b/circleci/images/citusupgradetester/Dockerfile index 0fce718..fce9f65 100644 --- a/circleci/images/citusupgradetester/Dockerfile +++ b/circleci/images/citusupgradetester/Dockerfile @@ -62,9 +62,6 @@ curl -sf https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg main" >> /etc/apt/sources.list.d/postgresql.list echo "deb https://apt-archive.postgresql.org/pub/repos/apt bullseye-pgdg-archive main" >> /etc/apt/sources.list.d/postgresql.list -# # bring in the 18 devel/beta packages -echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg-testing main 18" >> /etc/apt/sources.list.d/pgdg-testing.list - apt-get update # infer the pgdgversion of postgres based on the $PG_VERSION diff --git a/circleci/images/extbuilder/Dockerfile b/circleci/images/extbuilder/Dockerfile index 2edc9ea..e340e82 100644 --- a/circleci/images/extbuilder/Dockerfile +++ b/circleci/images/extbuilder/Dockerfile @@ -51,9 +51,6 @@ curl -sf https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg main" >> /etc/apt/sources.list.d/postgresql.list echo "deb https://apt-archive.postgresql.org/pub/repos/apt bullseye-pgdg-archive main" >> /etc/apt/sources.list.d/postgresql.list -# # bring in the 18 devel/beta packages -echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg-testing main 18" >> /etc/apt/sources.list.d/pgdg-testing.list - apt-get update # infer the pgdgversion of postgres based on the $PG_VERSION diff --git a/circleci/images/exttester/Dockerfile b/circleci/images/exttester/Dockerfile index 5f7c703..3079a53 100644 --- a/circleci/images/exttester/Dockerfile +++ b/circleci/images/exttester/Dockerfile @@ -157,9 +157,6 @@ curl -sf https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg main" >> /etc/apt/sources.list.d/postgresql.list echo "deb https://apt-archive.postgresql.org/pub/repos/apt bullseye-pgdg-archive main" >> /etc/apt/sources.list.d/postgresql.list -# # bring in the 18 devel/beta packages -echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg-testing main 18" >> /etc/apt/sources.list.d/pgdg-testing.list - apt-get update # infer the pgdgversion of postgres based on the $PG_VERSION diff --git a/circleci/images/failtester/Dockerfile b/circleci/images/failtester/Dockerfile index ef90b12..ce286e2 100644 --- a/circleci/images/failtester/Dockerfile +++ b/circleci/images/failtester/Dockerfile @@ -61,9 +61,6 @@ curl -sf https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg main" >> /etc/apt/sources.list.d/postgresql.list echo "deb https://apt-archive.postgresql.org/pub/repos/apt bullseye-pgdg-archive main" >> /etc/apt/sources.list.d/postgresql.list -# # bring in the 18 devel/beta packages -echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg-testing main 18" >> /etc/apt/sources.list.d/pgdg-testing.list - apt-get update # infer the pgdgversion of postgres based on the $PG_VERSION diff --git a/circleci/images/pgupgradetester/Dockerfile b/circleci/images/pgupgradetester/Dockerfile index 9657bd3..e4f1fd1 100644 --- a/circleci/images/pgupgradetester/Dockerfile +++ b/circleci/images/pgupgradetester/Dockerfile @@ -62,8 +62,6 @@ curl -sf https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg main" >> /etc/apt/sources.list.d/postgresql.list echo "deb https://apt-archive.postgresql.org/pub/repos/apt bullseye-pgdg-archive main" >> /etc/apt/sources.list.d/postgresql.list -# # bring in the 18 devel/beta packages -echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg-testing main 18" >> /etc/apt/sources.list.d/pgdg-testing.list apt-get update From 10272c27a55397676e392c01f5e366bb11bce03e Mon Sep 17 00:00:00 2001 From: Mehmet Yilmaz Date: Mon, 21 Jul 2025 14:21:18 +0300 Subject: [PATCH 20/21] Remove unnecessary blank lines in Dockerfiles for exttester and pgupgradetester --- circleci/images/exttester/Dockerfile | 1 - circleci/images/pgupgradetester/Dockerfile | 1 - 2 files changed, 2 deletions(-) diff --git a/circleci/images/exttester/Dockerfile b/circleci/images/exttester/Dockerfile index 3079a53..d08b054 100644 --- a/circleci/images/exttester/Dockerfile +++ b/circleci/images/exttester/Dockerfile @@ -175,7 +175,6 @@ apt-get install -y --no-install-recommends --allow-downgrades \ rm -rf /var/lib/apt/lists/* EOF - # add postgress to the path ENV PATH=/usr/lib/postgresql/$PG_MAJOR/bin/:$PATH diff --git a/circleci/images/pgupgradetester/Dockerfile b/circleci/images/pgupgradetester/Dockerfile index e4f1fd1..429fe7a 100644 --- a/circleci/images/pgupgradetester/Dockerfile +++ b/circleci/images/pgupgradetester/Dockerfile @@ -62,7 +62,6 @@ curl -sf https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg main" >> /etc/apt/sources.list.d/postgresql.list echo "deb https://apt-archive.postgresql.org/pub/repos/apt bullseye-pgdg-archive main" >> /etc/apt/sources.list.d/postgresql.list - apt-get update pkgs=(); From cd0154992da25a47d8a71131705768171630b72d Mon Sep 17 00:00:00 2001 From: Mehmet Yilmaz Date: Mon, 21 Jul 2025 14:55:02 +0300 Subject: [PATCH 21/21] Refactor Dockerfile to install IPC::Run without testing and remove unnecessary comments --- circleci/images/exttester/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/circleci/images/exttester/Dockerfile b/circleci/images/exttester/Dockerfile index d08b054..a54b32e 100644 --- a/circleci/images/exttester/Dockerfile +++ b/circleci/images/exttester/Dockerfile @@ -133,8 +133,8 @@ EOF RUN curl --proto '=https' --tlsv1.2 --silent --show-error https://sh.rustup.rs | sh -s -- -y ENV PATH="/root/.cargo/bin:${PATH}" -# install the Perl modules needed for all TAP-based tests (CDC, isolation, etc.) -RUN cpanm --notest IPC::Run DBI DBD::Pg +# perl's lib IPC::Run is required to run tap tests +RUN cpanm install IPC::Run # make special locales available COPY locale.gen /etc/locale.gen