1
0
mirror of https://github.com/docker-library/postgres.git synced 2025-07-28 10:42:06 +03:00

Update to Debian Stretch (slim)

This commit is contained in:
Tianon Gravi
2018-04-23 15:16:30 -07:00
parent aeae1436cd
commit ef4545c07b
7 changed files with 77 additions and 36 deletions

View File

@ -1,5 +1,5 @@
# vim:set ft=dockerfile: # vim:set ft=dockerfile:
FROM debian:stretch FROM debian:stretch-slim
RUN set -ex; \ RUN set -ex; \
if ! command -v gpg > /dev/null; then \ if ! command -v gpg > /dev/null; then \
@ -29,8 +29,15 @@ RUN set -x \
&& apt-get purge -y --auto-remove ca-certificates wget && apt-get purge -y --auto-remove ca-certificates wget
# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default # make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default
RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ RUN set -eux; \
&& localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 if [ -f /etc/dpkg/dpkg.cfg.d/docker ]; then \
# if this file exists, we're likely in "debian:xxx-slim", and locales are thus being excluded so we need to remove that exclusion (since we need locales)
grep -q '/usr/share/locale' /etc/dpkg/dpkg.cfg.d/docker; \
sed -ri '/\/usr\/share\/locale/d' /etc/dpkg/dpkg.cfg.d/docker; \
! grep -q '/usr/share/locale' /etc/dpkg/dpkg.cfg.d/docker; \
fi; \
apt-get update; apt-get install -y locales; rm -rf /var/lib/apt/lists/*; \
localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
ENV LANG en_US.utf8 ENV LANG en_US.utf8
RUN mkdir /docker-entrypoint-initdb.d RUN mkdir /docker-entrypoint-initdb.d

View File

@ -1,5 +1,5 @@
# vim:set ft=dockerfile: # vim:set ft=dockerfile:
FROM debian:jessie FROM debian:stretch-slim
RUN set -ex; \ RUN set -ex; \
if ! command -v gpg > /dev/null; then \ if ! command -v gpg > /dev/null; then \
@ -29,8 +29,15 @@ RUN set -x \
&& apt-get purge -y --auto-remove ca-certificates wget && apt-get purge -y --auto-remove ca-certificates wget
# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default # make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default
RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ RUN set -eux; \
&& localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 if [ -f /etc/dpkg/dpkg.cfg.d/docker ]; then \
# if this file exists, we're likely in "debian:xxx-slim", and locales are thus being excluded so we need to remove that exclusion (since we need locales)
grep -q '/usr/share/locale' /etc/dpkg/dpkg.cfg.d/docker; \
sed -ri '/\/usr\/share\/locale/d' /etc/dpkg/dpkg.cfg.d/docker; \
! grep -q '/usr/share/locale' /etc/dpkg/dpkg.cfg.d/docker; \
fi; \
apt-get update; apt-get install -y locales; rm -rf /var/lib/apt/lists/*; \
localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
ENV LANG en_US.utf8 ENV LANG en_US.utf8
RUN mkdir /docker-entrypoint-initdb.d RUN mkdir /docker-entrypoint-initdb.d
@ -47,7 +54,7 @@ RUN set -ex; \
apt-key list apt-key list
ENV PG_MAJOR 9.3 ENV PG_MAJOR 9.3
ENV PG_VERSION 9.3.22-1.pgdg80+1 ENV PG_VERSION 9.3.22-1.pgdg90+1
RUN set -ex; \ RUN set -ex; \
\ \
@ -55,13 +62,13 @@ RUN set -ex; \
case "$dpkgArch" in \ case "$dpkgArch" in \
amd64|i386|ppc64el) \ amd64|i386|ppc64el) \
# arches officialy built by upstream # arches officialy built by upstream
echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main $PG_MAJOR" > /etc/apt/sources.list.d/pgdg.list; \ echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main $PG_MAJOR" > /etc/apt/sources.list.d/pgdg.list; \
apt-get update; \ apt-get update; \
;; \ ;; \
*) \ *) \
# we're on an architecture upstream doesn't officially build for # we're on an architecture upstream doesn't officially build for
# let's build binaries from their published source packages # let's build binaries from their published source packages
echo "deb-src http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main $PG_MAJOR" > /etc/apt/sources.list.d/pgdg.list; \ echo "deb-src http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main $PG_MAJOR" > /etc/apt/sources.list.d/pgdg.list; \
\ \
tempDir="$(mktemp -d)"; \ tempDir="$(mktemp -d)"; \
cd "$tempDir"; \ cd "$tempDir"; \

View File

@ -1,5 +1,5 @@
# vim:set ft=dockerfile: # vim:set ft=dockerfile:
FROM debian:jessie FROM debian:stretch-slim
RUN set -ex; \ RUN set -ex; \
if ! command -v gpg > /dev/null; then \ if ! command -v gpg > /dev/null; then \
@ -29,8 +29,15 @@ RUN set -x \
&& apt-get purge -y --auto-remove ca-certificates wget && apt-get purge -y --auto-remove ca-certificates wget
# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default # make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default
RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ RUN set -eux; \
&& localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 if [ -f /etc/dpkg/dpkg.cfg.d/docker ]; then \
# if this file exists, we're likely in "debian:xxx-slim", and locales are thus being excluded so we need to remove that exclusion (since we need locales)
grep -q '/usr/share/locale' /etc/dpkg/dpkg.cfg.d/docker; \
sed -ri '/\/usr\/share\/locale/d' /etc/dpkg/dpkg.cfg.d/docker; \
! grep -q '/usr/share/locale' /etc/dpkg/dpkg.cfg.d/docker; \
fi; \
apt-get update; apt-get install -y locales; rm -rf /var/lib/apt/lists/*; \
localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
ENV LANG en_US.utf8 ENV LANG en_US.utf8
RUN mkdir /docker-entrypoint-initdb.d RUN mkdir /docker-entrypoint-initdb.d
@ -47,7 +54,7 @@ RUN set -ex; \
apt-key list apt-key list
ENV PG_MAJOR 9.4 ENV PG_MAJOR 9.4
ENV PG_VERSION 9.4.17-1.pgdg80+1 ENV PG_VERSION 9.4.17-1.pgdg90+1
RUN set -ex; \ RUN set -ex; \
\ \
@ -55,13 +62,13 @@ RUN set -ex; \
case "$dpkgArch" in \ case "$dpkgArch" in \
amd64|i386|ppc64el) \ amd64|i386|ppc64el) \
# arches officialy built by upstream # arches officialy built by upstream
echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main $PG_MAJOR" > /etc/apt/sources.list.d/pgdg.list; \ echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main $PG_MAJOR" > /etc/apt/sources.list.d/pgdg.list; \
apt-get update; \ apt-get update; \
;; \ ;; \
*) \ *) \
# we're on an architecture upstream doesn't officially build for # we're on an architecture upstream doesn't officially build for
# let's build binaries from their published source packages # let's build binaries from their published source packages
echo "deb-src http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main $PG_MAJOR" > /etc/apt/sources.list.d/pgdg.list; \ echo "deb-src http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main $PG_MAJOR" > /etc/apt/sources.list.d/pgdg.list; \
\ \
tempDir="$(mktemp -d)"; \ tempDir="$(mktemp -d)"; \
cd "$tempDir"; \ cd "$tempDir"; \

View File

@ -1,5 +1,5 @@
# vim:set ft=dockerfile: # vim:set ft=dockerfile:
FROM debian:jessie FROM debian:stretch-slim
RUN set -ex; \ RUN set -ex; \
if ! command -v gpg > /dev/null; then \ if ! command -v gpg > /dev/null; then \
@ -29,8 +29,15 @@ RUN set -x \
&& apt-get purge -y --auto-remove ca-certificates wget && apt-get purge -y --auto-remove ca-certificates wget
# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default # make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default
RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ RUN set -eux; \
&& localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 if [ -f /etc/dpkg/dpkg.cfg.d/docker ]; then \
# if this file exists, we're likely in "debian:xxx-slim", and locales are thus being excluded so we need to remove that exclusion (since we need locales)
grep -q '/usr/share/locale' /etc/dpkg/dpkg.cfg.d/docker; \
sed -ri '/\/usr\/share\/locale/d' /etc/dpkg/dpkg.cfg.d/docker; \
! grep -q '/usr/share/locale' /etc/dpkg/dpkg.cfg.d/docker; \
fi; \
apt-get update; apt-get install -y locales; rm -rf /var/lib/apt/lists/*; \
localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
ENV LANG en_US.utf8 ENV LANG en_US.utf8
RUN mkdir /docker-entrypoint-initdb.d RUN mkdir /docker-entrypoint-initdb.d
@ -47,7 +54,7 @@ RUN set -ex; \
apt-key list apt-key list
ENV PG_MAJOR 9.5 ENV PG_MAJOR 9.5
ENV PG_VERSION 9.5.12-1.pgdg80+1 ENV PG_VERSION 9.5.12-1.pgdg90+1
RUN set -ex; \ RUN set -ex; \
\ \
@ -55,13 +62,13 @@ RUN set -ex; \
case "$dpkgArch" in \ case "$dpkgArch" in \
amd64|i386|ppc64el) \ amd64|i386|ppc64el) \
# arches officialy built by upstream # arches officialy built by upstream
echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main $PG_MAJOR" > /etc/apt/sources.list.d/pgdg.list; \ echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main $PG_MAJOR" > /etc/apt/sources.list.d/pgdg.list; \
apt-get update; \ apt-get update; \
;; \ ;; \
*) \ *) \
# we're on an architecture upstream doesn't officially build for # we're on an architecture upstream doesn't officially build for
# let's build binaries from their published source packages # let's build binaries from their published source packages
echo "deb-src http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main $PG_MAJOR" > /etc/apt/sources.list.d/pgdg.list; \ echo "deb-src http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main $PG_MAJOR" > /etc/apt/sources.list.d/pgdg.list; \
\ \
tempDir="$(mktemp -d)"; \ tempDir="$(mktemp -d)"; \
cd "$tempDir"; \ cd "$tempDir"; \

View File

@ -1,5 +1,5 @@
# vim:set ft=dockerfile: # vim:set ft=dockerfile:
FROM debian:jessie FROM debian:stretch-slim
RUN set -ex; \ RUN set -ex; \
if ! command -v gpg > /dev/null; then \ if ! command -v gpg > /dev/null; then \
@ -29,8 +29,15 @@ RUN set -x \
&& apt-get purge -y --auto-remove ca-certificates wget && apt-get purge -y --auto-remove ca-certificates wget
# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default # make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default
RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ RUN set -eux; \
&& localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 if [ -f /etc/dpkg/dpkg.cfg.d/docker ]; then \
# if this file exists, we're likely in "debian:xxx-slim", and locales are thus being excluded so we need to remove that exclusion (since we need locales)
grep -q '/usr/share/locale' /etc/dpkg/dpkg.cfg.d/docker; \
sed -ri '/\/usr\/share\/locale/d' /etc/dpkg/dpkg.cfg.d/docker; \
! grep -q '/usr/share/locale' /etc/dpkg/dpkg.cfg.d/docker; \
fi; \
apt-get update; apt-get install -y locales; rm -rf /var/lib/apt/lists/*; \
localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
ENV LANG en_US.utf8 ENV LANG en_US.utf8
RUN mkdir /docker-entrypoint-initdb.d RUN mkdir /docker-entrypoint-initdb.d
@ -47,7 +54,7 @@ RUN set -ex; \
apt-key list apt-key list
ENV PG_MAJOR 9.6 ENV PG_MAJOR 9.6
ENV PG_VERSION 9.6.8-1.pgdg80+1 ENV PG_VERSION 9.6.8-1.pgdg90+1
RUN set -ex; \ RUN set -ex; \
\ \
@ -55,13 +62,13 @@ RUN set -ex; \
case "$dpkgArch" in \ case "$dpkgArch" in \
amd64|i386|ppc64el) \ amd64|i386|ppc64el) \
# arches officialy built by upstream # arches officialy built by upstream
echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main $PG_MAJOR" > /etc/apt/sources.list.d/pgdg.list; \ echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main $PG_MAJOR" > /etc/apt/sources.list.d/pgdg.list; \
apt-get update; \ apt-get update; \
;; \ ;; \
*) \ *) \
# we're on an architecture upstream doesn't officially build for # we're on an architecture upstream doesn't officially build for
# let's build binaries from their published source packages # let's build binaries from their published source packages
echo "deb-src http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main $PG_MAJOR" > /etc/apt/sources.list.d/pgdg.list; \ echo "deb-src http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main $PG_MAJOR" > /etc/apt/sources.list.d/pgdg.list; \
\ \
tempDir="$(mktemp -d)"; \ tempDir="$(mktemp -d)"; \
cd "$tempDir"; \ cd "$tempDir"; \

View File

@ -1,5 +1,5 @@
# vim:set ft=dockerfile: # vim:set ft=dockerfile:
FROM debian:%%DEBIAN_SUITE%% FROM debian:%%DEBIAN_TAG%%
RUN set -ex; \ RUN set -ex; \
if ! command -v gpg > /dev/null; then \ if ! command -v gpg > /dev/null; then \
@ -29,8 +29,15 @@ RUN set -x \
&& apt-get purge -y --auto-remove ca-certificates wget && apt-get purge -y --auto-remove ca-certificates wget
# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default # make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default
RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ RUN set -eux; \
&& localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 if [ -f /etc/dpkg/dpkg.cfg.d/docker ]; then \
# if this file exists, we're likely in "debian:xxx-slim", and locales are thus being excluded so we need to remove that exclusion (since we need locales)
grep -q '/usr/share/locale' /etc/dpkg/dpkg.cfg.d/docker; \
sed -ri '/\/usr\/share\/locale/d' /etc/dpkg/dpkg.cfg.d/docker; \
! grep -q '/usr/share/locale' /etc/dpkg/dpkg.cfg.d/docker; \
fi; \
apt-get update; apt-get install -y locales; rm -rf /var/lib/apt/lists/*; \
localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
ENV LANG en_US.utf8 ENV LANG en_US.utf8
RUN mkdir /docker-entrypoint-initdb.d RUN mkdir /docker-entrypoint-initdb.d

View File

@ -9,12 +9,9 @@ if [ ${#versions[@]} -eq 0 ]; then
fi fi
versions=( "${versions[@]%/}" ) versions=( "${versions[@]%/}" )
defaultDebianSuite='stretch-slim'
declare -A debianSuite=( declare -A debianSuite=(
[9.3]='jessie' #[9.6]='jessie'
[9.4]='jessie'
[9.5]='jessie'
[9.6]='jessie'
[10]='stretch'
) )
declare -A alpineVersion=( declare -A alpineVersion=(
[9.3]='3.5' [9.3]='3.5'
@ -33,7 +30,8 @@ osspUuidHash='11a615225baa5f8bb686824423f50e4427acd3f70d394765bdff32801f0fd5b0'
declare -A suitePackageList=() suiteArches=() declare -A suitePackageList=() suiteArches=()
travisEnv= travisEnv=
for version in "${versions[@]}"; do for version in "${versions[@]}"; do
suite="${debianSuite[$version]}" tag="${debianSuite[$version]:-$defaultDebianSuite}"
suite="${tag%%-slim}"
if [ -z "${suitePackageList["$suite"]:+isset}" ]; then if [ -z "${suitePackageList["$suite"]:+isset}" ]; then
suitePackageList["$suite"]="$(curl -fsSL "${packagesBase}/${suite}-pgdg/main/binary-amd64/Packages.bz2" | bunzip2)" suitePackageList["$suite"]="$(curl -fsSL "${packagesBase}/${suite}-pgdg/main/binary-amd64/Packages.bz2" | bunzip2)"
fi fi
@ -50,6 +48,7 @@ for version in "${versions[@]}"; do
cp docker-entrypoint.sh "$version/" cp docker-entrypoint.sh "$version/"
sed -e 's/%%PG_MAJOR%%/'"$version"'/g;' \ sed -e 's/%%PG_MAJOR%%/'"$version"'/g;' \
-e 's/%%PG_VERSION%%/'"$fullVersion"'/g' \ -e 's/%%PG_VERSION%%/'"$fullVersion"'/g' \
-e 's/%%DEBIAN_TAG%%/'"$tag"'/g' \
-e 's/%%DEBIAN_SUITE%%/'"$suite"'/g' \ -e 's/%%DEBIAN_SUITE%%/'"$suite"'/g' \
-e 's/%%ARCH_LIST%%/'"${suiteArches["$suite"]}"'/g' \ -e 's/%%ARCH_LIST%%/'"${suiteArches["$suite"]}"'/g' \
Dockerfile-debian.template > "$version/Dockerfile" Dockerfile-debian.template > "$version/Dockerfile"