diff --git a/Dockerfile b/Dockerfile index 9b266e719ac5c084d7ef76450740f12304e98fad..966e8959e1731c1c01b697fb9472d3974d534a0e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -54,6 +54,62 @@ RUN set -eux; \ +FROM tsbuilder-base as tsbuilder-2.15.1 + +ENV TIMESCALEDB_VER=2.15.1 + +# Checkout the right version +RUN set -eux; \ + cd build; \ + cd timescaledb; \ + git checkout "$TIMESCALEDB_VER" + +# Build +RUN set -eux; \ + cd build; \ + cd "timescaledb"; \ +# Patching +# patch -p1 < ../patches/timescaledb-2.14.0-fix-test-output.patch; \ + mkdir build; \ + cd build; \ + \ + cmake ..; \ + make VERBOSE=1 -j$(nproc) -l 8; \ + make DESTDIR="/build/timescaledb-root" install; \ + # We need to install a second time to run timescaledb tests + echo "Size before stripping..."; \ + du -hs /build/timescaledb-root + +# Strip binaries +RUN set -eux; \ + cd build/timescaledb-root; \ + scanelf --recursive --nobanner --osabi --etype "ET_DYN,ET_EXEC" . | awk '{print $3}' | xargs \ + strip \ + --remove-section=.comment \ + --remove-section=.note \ + -R .gnu.lto_* -R .gnu.debuglto_* \ + -N __gnu_lto_slim -N __gnu_lto_v1 \ + --strip-unneeded; \ + echo "Size after stripping..."; \ + du -hs /build/timescaledb-root + +# Testing +RUN set -eux; \ + # Install TimescaleDB so we can run the installcheck tests below + tar -c -C /build/timescaledb-root . | tar -x -C /; \ + # For testing we need to run the tests as a non-priv user + cd build; \ + adduser -D pgsqltest; \ + chown -R pgsqltest:pgsqltest "timescaledb"; \ + cd "timescaledb"; \ + cd build; \ + # Test + if ! sudo -u pgsqltest make VERBOSE=1 -j1 -l8 installcheck; then \ + cat test/regression.diffs; \ + false; \ + fi + + FROM tsbuilder-base as tsbuilder-2.15.0 ENV TIMESCALEDB_VER=2.15.0 @@ -288,6 +344,7 @@ COPY --from=tsbuilder-2.14.0 /build/timescaledb-root / COPY --from=tsbuilder-2.14.1 /build/timescaledb-root / COPY --from=tsbuilder-2.14.2 /build/timescaledb-root / COPY --from=tsbuilder-2.15.0 /build/timescaledb-root / +COPY --from=tsbuilder-2.15.1 /build/timescaledb-root / ARG VERSION_INFO=