1
0
mirror of https://github.com/docker-library/postgres.git synced 2025-11-19 00:22:57 +03:00

Merge pull request #255 from kurlzor/add-ossp-uuid

Add ossp uuid to the alpine 9.2 and 9.3 images
This commit is contained in:
yosifkit
2017-03-06 15:19:59 -08:00
committed by GitHub
8 changed files with 122 additions and 12 deletions

View File

@@ -17,6 +17,9 @@ ENV PG_MAJOR 9.2
ENV PG_VERSION 9.2.20 ENV PG_VERSION 9.2.20
ENV PG_SHA256 0b8abdae8400cabea5587a726003c9dd71c73c049bdae523abc35f9312dd8f26 ENV PG_SHA256 0b8abdae8400cabea5587a726003c9dd71c73c049bdae523abc35f9312dd8f26
ENV OSSP_UUID_VERSION 1.6.2
ENV OSSP_UUID_SHA256 11a615225baa5f8bb686824423f50e4427acd3f70d394765bdff32801f0fd5b0
RUN set -ex \ RUN set -ex \
\ \
&& apk add --no-cache --virtual .fetch-deps \ && apk add --no-cache --virtual .fetch-deps \
@@ -36,6 +39,7 @@ RUN set -ex \
\ \
&& apk add --no-cache --virtual .build-deps \ && apk add --no-cache --virtual .build-deps \
bison \ bison \
coreutils \
flex \ flex \
gcc \ gcc \
# krb5-dev \ # krb5-dev \
@@ -54,6 +58,26 @@ RUN set -ex \
util-linux-dev \ util-linux-dev \
zlib-dev \ zlib-dev \
\ \
# install OSSP uuid (http://www.ossp.org/pkg/lib/uuid/)
# see https://github.com/docker-library/postgres/pull/255 for more details
&& wget -O uuid.tar.gz "https://www.mirrorservice.org/sites/ftp.ossp.org/pkg/lib/uuid/uuid-$OSSP_UUID_VERSION.tar.gz" \
&& echo "$OSSP_UUID_SHA256 *uuid.tar.gz" | sha256sum -c - \
&& mkdir -p /usr/src/ossp-uuid \
&& tar \
--extract \
--file uuid.tar.gz \
--directory /usr/src/ossp-uuid \
--strip-components 1 \
&& rm uuid.tar.gz \
&& ( \
cd /usr/src/ossp-uuid \
&& ./configure \
--prefix=/usr/local \
&& make -j "$(nproc)" \
&& make install \
) \
&& rm -rf /usr/src/ossp-uuid \
\
&& cd /usr/src/postgresql \ && cd /usr/src/postgresql \
# update "DEFAULT_PGSOCKET_DIR" to "/var/run/postgresql" (matching Debian) # update "DEFAULT_PGSOCKET_DIR" to "/var/run/postgresql" (matching Debian)
# see https://anonscm.debian.org/git/pkg-postgresql/postgresql.git/tree/debian/patches/51-default-sockets-in-var.patch?id=8b539fcb3e093a521c095e70bdfa76887217b89f # see https://anonscm.debian.org/git/pkg-postgresql/postgresql.git/tree/debian/patches/51-default-sockets-in-var.patch?id=8b539fcb3e093a521c095e70bdfa76887217b89f
@@ -67,15 +91,16 @@ RUN set -ex \
# --enable-nls \ # --enable-nls \
--enable-integer-datetimes \ --enable-integer-datetimes \
--enable-thread-safety \ --enable-thread-safety \
--enable-tap-tests \
# skip debugging info -- we want tiny size instead # skip debugging info -- we want tiny size instead
# --enable-debug \ # --enable-debug \
--disable-rpath \ --disable-rpath \
--with-uuid=e2fs \ --with-ossp-uuid \
--with-gnu-ld \ --with-gnu-ld \
--with-pgport=5432 \ --with-pgport=5432 \
--with-system-tzdata=/usr/share/zoneinfo \ --with-system-tzdata=/usr/share/zoneinfo \
--prefix=/usr/local \ --prefix=/usr/local \
--with-includes=/usr/local/include \
--with-libraries=/usr/local/lib \
\ \
# these make our image abnormally large (at least 100MB larger), which seems uncouth for an "Alpine" (ie, "small") variant :) # these make our image abnormally large (at least 100MB larger), which seems uncouth for an "Alpine" (ie, "small") variant :)
# --with-krb5 \ # --with-krb5 \
@@ -88,7 +113,7 @@ RUN set -ex \
--with-openssl \ --with-openssl \
--with-libxml \ --with-libxml \
--with-libxslt \ --with-libxslt \
&& make -j "$(getconf _NPROCESSORS_ONLN)" world \ && make -j "$(nproc)" world \
&& make install-world \ && make install-world \
&& make -C contrib install \ && make -C contrib install \
\ \

View File

@@ -17,6 +17,9 @@ ENV PG_MAJOR 9.3
ENV PG_VERSION 9.3.16 ENV PG_VERSION 9.3.16
ENV PG_SHA256 845f5e4ac8cf026b6a77c5a180a2fe869f51e9d06acf8d0365b05505a2c66873 ENV PG_SHA256 845f5e4ac8cf026b6a77c5a180a2fe869f51e9d06acf8d0365b05505a2c66873
ENV OSSP_UUID_VERSION 1.6.2
ENV OSSP_UUID_SHA256 11a615225baa5f8bb686824423f50e4427acd3f70d394765bdff32801f0fd5b0
RUN set -ex \ RUN set -ex \
\ \
&& apk add --no-cache --virtual .fetch-deps \ && apk add --no-cache --virtual .fetch-deps \
@@ -36,6 +39,7 @@ RUN set -ex \
\ \
&& apk add --no-cache --virtual .build-deps \ && apk add --no-cache --virtual .build-deps \
bison \ bison \
coreutils \
flex \ flex \
gcc \ gcc \
# krb5-dev \ # krb5-dev \
@@ -54,6 +58,26 @@ RUN set -ex \
util-linux-dev \ util-linux-dev \
zlib-dev \ zlib-dev \
\ \
# install OSSP uuid (http://www.ossp.org/pkg/lib/uuid/)
# see https://github.com/docker-library/postgres/pull/255 for more details
&& wget -O uuid.tar.gz "https://www.mirrorservice.org/sites/ftp.ossp.org/pkg/lib/uuid/uuid-$OSSP_UUID_VERSION.tar.gz" \
&& echo "$OSSP_UUID_SHA256 *uuid.tar.gz" | sha256sum -c - \
&& mkdir -p /usr/src/ossp-uuid \
&& tar \
--extract \
--file uuid.tar.gz \
--directory /usr/src/ossp-uuid \
--strip-components 1 \
&& rm uuid.tar.gz \
&& ( \
cd /usr/src/ossp-uuid \
&& ./configure \
--prefix=/usr/local \
&& make -j "$(nproc)" \
&& make install \
) \
&& rm -rf /usr/src/ossp-uuid \
\
&& cd /usr/src/postgresql \ && cd /usr/src/postgresql \
# update "DEFAULT_PGSOCKET_DIR" to "/var/run/postgresql" (matching Debian) # update "DEFAULT_PGSOCKET_DIR" to "/var/run/postgresql" (matching Debian)
# see https://anonscm.debian.org/git/pkg-postgresql/postgresql.git/tree/debian/patches/51-default-sockets-in-var.patch?id=8b539fcb3e093a521c095e70bdfa76887217b89f # see https://anonscm.debian.org/git/pkg-postgresql/postgresql.git/tree/debian/patches/51-default-sockets-in-var.patch?id=8b539fcb3e093a521c095e70bdfa76887217b89f
@@ -67,15 +91,16 @@ RUN set -ex \
# --enable-nls \ # --enable-nls \
--enable-integer-datetimes \ --enable-integer-datetimes \
--enable-thread-safety \ --enable-thread-safety \
--enable-tap-tests \
# skip debugging info -- we want tiny size instead # skip debugging info -- we want tiny size instead
# --enable-debug \ # --enable-debug \
--disable-rpath \ --disable-rpath \
--with-uuid=e2fs \ --with-ossp-uuid \
--with-gnu-ld \ --with-gnu-ld \
--with-pgport=5432 \ --with-pgport=5432 \
--with-system-tzdata=/usr/share/zoneinfo \ --with-system-tzdata=/usr/share/zoneinfo \
--prefix=/usr/local \ --prefix=/usr/local \
--with-includes=/usr/local/include \
--with-libraries=/usr/local/lib \
\ \
# these make our image abnormally large (at least 100MB larger), which seems uncouth for an "Alpine" (ie, "small") variant :) # these make our image abnormally large (at least 100MB larger), which seems uncouth for an "Alpine" (ie, "small") variant :)
# --with-krb5 \ # --with-krb5 \
@@ -88,7 +113,7 @@ RUN set -ex \
--with-openssl \ --with-openssl \
--with-libxml \ --with-libxml \
--with-libxslt \ --with-libxslt \
&& make -j "$(getconf _NPROCESSORS_ONLN)" world \ && make -j "$(nproc)" world \
&& make install-world \ && make install-world \
&& make -C contrib install \ && make -C contrib install \
\ \

View File

@@ -36,6 +36,7 @@ RUN set -ex \
\ \
&& apk add --no-cache --virtual .build-deps \ && apk add --no-cache --virtual .build-deps \
bison \ bison \
coreutils \
flex \ flex \
gcc \ gcc \
# krb5-dev \ # krb5-dev \
@@ -76,6 +77,8 @@ RUN set -ex \
--with-pgport=5432 \ --with-pgport=5432 \
--with-system-tzdata=/usr/share/zoneinfo \ --with-system-tzdata=/usr/share/zoneinfo \
--prefix=/usr/local \ --prefix=/usr/local \
--with-includes=/usr/local/include \
--with-libraries=/usr/local/lib \
\ \
# these make our image abnormally large (at least 100MB larger), which seems uncouth for an "Alpine" (ie, "small") variant :) # these make our image abnormally large (at least 100MB larger), which seems uncouth for an "Alpine" (ie, "small") variant :)
# --with-krb5 \ # --with-krb5 \
@@ -88,7 +91,7 @@ RUN set -ex \
--with-openssl \ --with-openssl \
--with-libxml \ --with-libxml \
--with-libxslt \ --with-libxslt \
&& make -j "$(getconf _NPROCESSORS_ONLN)" world \ && make -j "$(nproc)" world \
&& make install-world \ && make install-world \
&& make -C contrib install \ && make -C contrib install \
\ \

View File

@@ -36,6 +36,7 @@ RUN set -ex \
\ \
&& apk add --no-cache --virtual .build-deps \ && apk add --no-cache --virtual .build-deps \
bison \ bison \
coreutils \
flex \ flex \
gcc \ gcc \
# krb5-dev \ # krb5-dev \
@@ -76,6 +77,8 @@ RUN set -ex \
--with-pgport=5432 \ --with-pgport=5432 \
--with-system-tzdata=/usr/share/zoneinfo \ --with-system-tzdata=/usr/share/zoneinfo \
--prefix=/usr/local \ --prefix=/usr/local \
--with-includes=/usr/local/include \
--with-libraries=/usr/local/lib \
\ \
# these make our image abnormally large (at least 100MB larger), which seems uncouth for an "Alpine" (ie, "small") variant :) # these make our image abnormally large (at least 100MB larger), which seems uncouth for an "Alpine" (ie, "small") variant :)
# --with-krb5 \ # --with-krb5 \
@@ -88,7 +91,7 @@ RUN set -ex \
--with-openssl \ --with-openssl \
--with-libxml \ --with-libxml \
--with-libxslt \ --with-libxslt \
&& make -j "$(getconf _NPROCESSORS_ONLN)" world \ && make -j "$(nproc)" world \
&& make install-world \ && make install-world \
&& make -C contrib install \ && make -C contrib install \
\ \

View File

@@ -36,6 +36,7 @@ RUN set -ex \
\ \
&& apk add --no-cache --virtual .build-deps \ && apk add --no-cache --virtual .build-deps \
bison \ bison \
coreutils \
flex \ flex \
gcc \ gcc \
# krb5-dev \ # krb5-dev \
@@ -76,6 +77,8 @@ RUN set -ex \
--with-pgport=5432 \ --with-pgport=5432 \
--with-system-tzdata=/usr/share/zoneinfo \ --with-system-tzdata=/usr/share/zoneinfo \
--prefix=/usr/local \ --prefix=/usr/local \
--with-includes=/usr/local/include \
--with-libraries=/usr/local/lib \
\ \
# these make our image abnormally large (at least 100MB larger), which seems uncouth for an "Alpine" (ie, "small") variant :) # these make our image abnormally large (at least 100MB larger), which seems uncouth for an "Alpine" (ie, "small") variant :)
# --with-krb5 \ # --with-krb5 \
@@ -88,7 +91,7 @@ RUN set -ex \
--with-openssl \ --with-openssl \
--with-libxml \ --with-libxml \
--with-libxslt \ --with-libxslt \
&& make -j "$(getconf _NPROCESSORS_ONLN)" world \ && make -j "$(nproc)" world \
&& make install-world \ && make install-world \
&& make -C contrib install \ && make -C contrib install \
\ \

View File

@@ -17,6 +17,7 @@ ENV PG_MAJOR %%PG_MAJOR%%
ENV PG_VERSION %%PG_VERSION%% ENV PG_VERSION %%PG_VERSION%%
ENV PG_SHA256 %%PG_SHA256%% ENV PG_SHA256 %%PG_SHA256%%
%%OSSP_UUID_ENV_VARS%%
RUN set -ex \ RUN set -ex \
\ \
&& apk add --no-cache --virtual .fetch-deps \ && apk add --no-cache --virtual .fetch-deps \
@@ -36,6 +37,7 @@ RUN set -ex \
\ \
&& apk add --no-cache --virtual .build-deps \ && apk add --no-cache --virtual .build-deps \
bison \ bison \
coreutils \
flex \ flex \
gcc \ gcc \
# krb5-dev \ # krb5-dev \
@@ -54,6 +56,7 @@ RUN set -ex \
util-linux-dev \ util-linux-dev \
zlib-dev \ zlib-dev \
\ \
%%INSTALL_OSSP_UUID%%
&& cd /usr/src/postgresql \ && cd /usr/src/postgresql \
# update "DEFAULT_PGSOCKET_DIR" to "/var/run/postgresql" (matching Debian) # update "DEFAULT_PGSOCKET_DIR" to "/var/run/postgresql" (matching Debian)
# see https://anonscm.debian.org/git/pkg-postgresql/postgresql.git/tree/debian/patches/51-default-sockets-in-var.patch?id=8b539fcb3e093a521c095e70bdfa76887217b89f # see https://anonscm.debian.org/git/pkg-postgresql/postgresql.git/tree/debian/patches/51-default-sockets-in-var.patch?id=8b539fcb3e093a521c095e70bdfa76887217b89f
@@ -71,11 +74,13 @@ RUN set -ex \
# skip debugging info -- we want tiny size instead # skip debugging info -- we want tiny size instead
# --enable-debug \ # --enable-debug \
--disable-rpath \ --disable-rpath \
--with-uuid=e2fs \ %%UUID_CONFIG_FLAG%% \
--with-gnu-ld \ --with-gnu-ld \
--with-pgport=5432 \ --with-pgport=5432 \
--with-system-tzdata=/usr/share/zoneinfo \ --with-system-tzdata=/usr/share/zoneinfo \
--prefix=/usr/local \ --prefix=/usr/local \
--with-includes=/usr/local/include \
--with-libraries=/usr/local/lib \
\ \
# these make our image abnormally large (at least 100MB larger), which seems uncouth for an "Alpine" (ie, "small") variant :) # these make our image abnormally large (at least 100MB larger), which seems uncouth for an "Alpine" (ie, "small") variant :)
# --with-krb5 \ # --with-krb5 \
@@ -88,7 +93,7 @@ RUN set -ex \
--with-openssl \ --with-openssl \
--with-libxml \ --with-libxml \
--with-libxslt \ --with-libxslt \
&& make -j "$(getconf _NPROCESSORS_ONLN)" world \ && make -j "$(nproc)" world \
&& make install-world \ && make install-world \
&& make -C contrib install \ && make -C contrib install \
\ \

20
ossp-uuid.template Normal file
View File

@@ -0,0 +1,20 @@
# install OSSP uuid (http://www.ossp.org/pkg/lib/uuid/)
# see https://github.com/docker-library/postgres/pull/255 for more details
&& wget -O uuid.tar.gz "https://www.mirrorservice.org/sites/ftp.ossp.org/pkg/lib/uuid/uuid-$OSSP_UUID_VERSION.tar.gz" \
&& echo "$OSSP_UUID_SHA256 *uuid.tar.gz" | sha256sum -c - \
&& mkdir -p /usr/src/ossp-uuid \
&& tar \
--extract \
--file uuid.tar.gz \
--directory /usr/src/ossp-uuid \
--strip-components 1 \
&& rm uuid.tar.gz \
&& ( \
cd /usr/src/ossp-uuid \
&& ./configure \
--prefix=/usr/local \
&& make -j "$(nproc)" \
&& make install \
) \
&& rm -rf /usr/src/ossp-uuid \
\

View File

@@ -12,6 +12,10 @@ versions=( "${versions[@]%/}" )
packagesBase='http://apt.postgresql.org/pub/repos/apt/dists/jessie-pgdg' packagesBase='http://apt.postgresql.org/pub/repos/apt/dists/jessie-pgdg'
mainList="$(curl -fsSL "$packagesBase/main/binary-amd64/Packages.bz2" | bunzip2)" mainList="$(curl -fsSL "$packagesBase/main/binary-amd64/Packages.bz2" | bunzip2)"
# https://www.mirrorservice.org/sites/ftp.ossp.org/pkg/lib/uuid/?C=M;O=D
osspUuidVersion='1.6.2'
osspUuidHash='11a615225baa5f8bb686824423f50e4427acd3f70d394765bdff32801f0fd5b0'
travisEnv= travisEnv=
for version in "${versions[@]}"; do for version in "${versions[@]}"; do
versionList="$(echo "$mainList"; curl -fsSL "$packagesBase/$version/binary-amd64/Packages.bz2" | bunzip2)" versionList="$(echo "$mainList"; curl -fsSL "$packagesBase/$version/binary-amd64/Packages.bz2" | bunzip2)"
@@ -33,7 +37,29 @@ for version in "${versions[@]}"; do
set -x set -x
cp docker-entrypoint.sh "$version/$variant/" cp docker-entrypoint.sh "$version/$variant/"
sed -i 's/gosu/su-exec/g' "$version/$variant/docker-entrypoint.sh" sed -i 's/gosu/su-exec/g' "$version/$variant/docker-entrypoint.sh"
sed 's/%%PG_MAJOR%%/'"$version"'/g; s/%%PG_VERSION%%/'"$srcVersion"'/g; s/%%PG_SHA256%%/'"$srcSha256"'/g' Dockerfile-$variant.template > "$version/$variant/Dockerfile" sed -e 's/%%PG_MAJOR%%/'"$version"'/g' \
-e 's/%%PG_VERSION%%/'"$srcVersion"'/g' \
-e 's/%%PG_SHA256%%/'"$srcSha256"'/g' \
"Dockerfile-$variant.template" > "$version/$variant/Dockerfile"
# TODO remove all this when 9.2 and 9.3 are EOL (2017-10-01 and 2018-10-01 -- from http://www.postgresql.org/support/versioning/)
case "$version" in
9.2|9.3)
uuidConfigFlag='--with-ossp-uuid'
sed -i 's/%%OSSP_UUID_ENV_VARS%%/ENV OSSP_UUID_VERSION '"$osspUuidVersion"'\nENV OSSP_UUID_SHA256 '"$osspUuidHash"'\n/' "$version/$variant/Dockerfile"
sed -i $'/%%INSTALL_OSSP_UUID%%/ {r ossp-uuid.template\n d}' "$version/$variant/Dockerfile"
# configure: WARNING: unrecognized options: --enable-tap-tests
sed -i '/--enable-tap-tests/d' "$version/$variant/Dockerfile"
;;
*)
uuidConfigFlag='--with-uuid=e2fs'
sed -i '/%%OSSP_UUID_ENV_VARS%%/d' "$version/$variant/Dockerfile"
sed -i '/%%INSTALL_OSSP_UUID%%/d' "$version/$variant/Dockerfile"
;;
esac
sed -i 's/%%UUID_CONFIG_FLAG%%/'"$uuidConfigFlag"'/' "$version/$variant/Dockerfile"
) )
travisEnv="\n - VERSION=$version VARIANT=$variant$travisEnv" travisEnv="\n - VERSION=$version VARIANT=$variant$travisEnv"
done done