diff --git a/.github/workflows/smoke-test.yml b/.github/workflows/smoke-test.yml index c831969c..af3abfe8 100644 --- a/.github/workflows/smoke-test.yml +++ b/.github/workflows/smoke-test.yml @@ -73,7 +73,10 @@ jobs: psql -c "CREATE EXTENSION zombodb;" psql -c "SELECT * FROM pg_extension WHERE extname = 'zombodb';" - + + echo "Test pg_repack Extension" + psql -c "CREATE EXTENSION pg_repack;" + psql -c "select repack.version(), repack.version_sql();" break fi sleep 1 diff --git a/Dockerfile b/Dockerfile index aa1b9a1f..6c052667 100644 --- a/Dockerfile +++ b/Dockerfile @@ -256,4 +256,29 @@ RUN apk add --no-cache --virtual .zombodb-build-deps \ && cargo pgrx install --release \ && cd .. \ && rm -rf ./zombodb \ - && apk del .zombodb-build-deps \ No newline at end of file + && apk del .zombodb-build-deps + +## Adding pg_repack +ARG PG_REPACK_VERSION +RUN set -eux \ + && apk add --no-cache --virtual .pg_repack-build-deps \ + openssl-dev \ + zstd-dev \ + lz4-dev \ + zlib-dev \ + make \ + clang15 \ + gawk \ + llvm15 \ + gcc \ + musl-dev \ +# build pg_repack + && wget -O /tmp/pg_repack-${PG_REPACK_VERSION}.zip "https://api.pgxn.org/dist/pg_repack/${PG_REPACK_VERSION}/pg_repack-${PG_REPACK_VERSION}.zip" \ + && unzip /tmp/pg_repack-${PG_REPACK_VERSION}.zip -d /tmp \ + && cd /tmp/pg_repack-${PG_REPACK_VERSION} \ + && make \ + && make install \ +# clean + && cd / \ + && rm -rf /tmp/pg_repack-${PG_REPACK_VERSION} /tmp/pg_repack.zip \ + && apk del .pg_repack-build-deps \ No newline at end of file diff --git a/Makefile b/Makefile index 7c97a5a6..9285064b 100644 --- a/Makefile +++ b/Makefile @@ -5,6 +5,7 @@ ORG=samagragovernance PG_VER=pg15 CITUS_VERSION="11.2.0" POSTGIS_VERSION=3.3.2 +PG_REPACK_VERSION = 1.4.8 POSTGIS_SHA256=2a6858d1df06de1c5f85a5b780773e92f6ba3a5dc09ac31120ac895242f5a77b PG_VER_NUMBER=$(shell echo $(PG_VER) | cut -c3-) TS_VERSION=main @@ -57,7 +58,7 @@ default: image touch .build_$(TS_VERSION)_$(PG_VER)_oss .build_$(TS_VERSION)_$(PG_VER): Dockerfile - docker build --build-arg PG_VERSION=$(PG_VER_NUMBER) --build-arg TS_VERSION=$(TS_VERSION) --build-arg PREV_IMAGE=$(PREV_IMAGE) --build-arg CITUS_VERSION=$(CITUS_VERSION) --build-arg PG_VER=$(PG_VER) --build-arg POSTGIS_VERSION=$(POSTGIS_VERSION) --build-arg POSTGIS_SHA256=$(POSTGIS_SHA256) $(TAG) . + docker build --build-arg PG_VERSION=$(PG_VER_NUMBER) --build-arg TS_VERSION=$(TS_VERSION) --build-arg PREV_IMAGE=$(PREV_IMAGE) --build-arg CITUS_VERSION=$(CITUS_VERSION) --build-arg PG_VER=$(PG_VER) --build-arg PG_REPACK_VERSION=$(PG_REPACK_VERSION) --build-arg POSTGIS_VERSION=$(POSTGIS_VERSION) --build-arg POSTGIS_SHA256=$(POSTGIS_SHA256) $(TAG) . touch .build_$(TS_VERSION)_$(PG_VER) image: .build_$(TS_VERSION)_$(PG_VER) diff --git a/bitnami/Dockerfile b/bitnami/Dockerfile index 79bbfa61..8a3b1d4c 100644 --- a/bitnami/Dockerfile +++ b/bitnami/Dockerfile @@ -141,6 +141,35 @@ RUN apt-get update \ postgresql-$PG_MAJOR-postgis-$POSTGIS_MAJOR=$POSTGIS_VERSION \ postgresql-$PG_MAJOR-postgis-$POSTGIS_MAJOR-scripts \ && rm -rf /var/lib/apt/lists/* +# ADD pg_repack Extention +ARG PG_REPACK_VERSION + +RUN apt-get update \ + && apt-get install -y unzip \ + build-essential \ + liblz4-dev \ + zlib1g-dev \ + libssl-dev \ + wget \ +# build pg_repack + && wget -O /tmp/pg_repack-${PG_REPACK_VERSION}.zip "https://api.pgxn.org/dist/pg_repack/${PG_REPACK_VERSION}/pg_repack-${PG_REPACK_VERSION}.zip" \ + && unzip /tmp/pg_repack-${PG_REPACK_VERSION}.zip -d /tmp \ + && cd /tmp/pg_repack-${PG_REPACK_VERSION} \ + && make \ + && make install \ +#clean + && apt-get autoremove --purge -y \ + unzip \ + build-essential \ + liblz4-dev \ + libssl-dev \ + zlib1g-dev \ + wget \ + && apt-get clean -y \ + && rm -rf \ + /var/lib/apt/lists/* \ + /tmp/* \ + /var/tmp/* # Install zombodb extension RUN apt-get update -y -qq --fix-missing \ diff --git a/bitnami/Makefile b/bitnami/Makefile index 6dab83ad..569c0116 100644 --- a/bitnami/Makefile +++ b/bitnami/Makefile @@ -7,7 +7,7 @@ CITUS_VERSION="11.2.0" POSTGIS_MAJOR=3 PG_MAJOR=15 POSTGIS_VERSION=3.3.2+dfsg-1.pgdg110+1 - +PG_REPACK_VERSION = 1.4.8 PG_VER_NUMBER=$(shell echo $(PG_VER) | cut -c3-) TS_VERSION=main @@ -26,7 +26,7 @@ default: image .build_$(TS_VERSION)_$(PG_VER): Dockerfile test -n "$(TS_VERSION)" # TS_VERSION test -n "$(PREV_TS_VERSION)" # PREV_TS_VERSION - docker build -f ./Dockerfile --build-arg PG_VERSION=$(PG_VER_NUMBER) --build-arg TS_VERSION=$(TS_VERSION) --build-arg PREV_IMAGE=$(PREV_IMAGE) --build-arg CITUS_VERSION=$(CITUS_VERSION) --build-arg POSTGIS_MAJOR=$(POSTGIS_MAJOR) --build-arg PG_MAJOR=$(PG_MAJOR) --build-arg POSTGIS_VERSION=$(POSTGIS_VERSION) $(TAG) .. + docker build -f ./Dockerfile --build-arg PG_VERSION=$(PG_VER_NUMBER) --build-arg TS_VERSION=$(TS_VERSION) --build-arg PREV_IMAGE=$(PREV_IMAGE) --build-arg CITUS_VERSION=$(CITUS_VERSION) --build-arg PG_REPACK_VERSION=$(PG_REPACK_VERSION) --build-arg POSTGIS_MAJOR=$(POSTGIS_MAJOR) --build-arg PG_MAJOR=$(PG_MAJOR) --build-arg POSTGIS_VERSION=$(POSTGIS_VERSION) $(TAG) .. touch .build_$(TS_VERSION)_$(PG_VER)-bitnami image: .build_$(TS_VERSION)_$(PG_VER) diff --git a/bitnami/timescaledb-bitnami-entrypoint.sh b/bitnami/timescaledb-bitnami-entrypoint.sh index 6c605e36..f4df80c2 100755 --- a/bitnami/timescaledb-bitnami-entrypoint.sh +++ b/bitnami/timescaledb-bitnami-entrypoint.sh @@ -4,9 +4,9 @@ # the shared preload list, or else it gets overwritten. if [ -z "$POSTGRESQL_SHARED_PRELOAD_LIBRARIES" ] then - POSTGRESQL_SHARED_PRELOAD_LIBRARIES="citus,timescaledb,zombodb" + POSTGRESQL_SHARED_PRELOAD_LIBRARIES="citus,timescaledb,zombodb,pg_repack" else - POSTGRESQL_SHARED_PRELOAD_LIBRARIES="citus,timescaledb,zombodb,$POSTGRESQL_SHARED_PRELOAD_LIBRARIES" + POSTGRESQL_SHARED_PRELOAD_LIBRARIES="citus,timescaledb,zombodb,pg_repack,$POSTGRESQL_SHARED_PRELOAD_LIBRARIES" fi export POSTGRESQL_SHARED_PRELOAD_LIBRARIES