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

Use "apt-get source --compile" to build for Debian architectures upstream doesn't

This commit is contained in:
Tianon Gravi
2017-08-30 21:19:18 -07:00
parent 58ed93931d
commit cd3f3b1c48
10 changed files with 496 additions and 95 deletions

View File

@ -32,13 +32,16 @@ packagesBase='http://apt.postgresql.org/pub/repos/apt/dists/'
osspUuidVersion='1.6.2'
osspUuidHash='11a615225baa5f8bb686824423f50e4427acd3f70d394765bdff32801f0fd5b0'
declare -A suitePackageList
declare -A suitePackageList=() suiteArches=()
travisEnv=
for version in "${versions[@]}"; do
suite="${debianSuite[$version]}"
if [ -z "${suitePackageList["$suite"]:+isset}" ]; then
suitePackageList["$suite"]="$(curl -fsSL "${packagesBase}/${suite}-pgdg/main/binary-amd64/Packages.bz2" | bunzip2)"
fi
if [ -z "${suiteArches["$suite"]:+isset}" ]; then
suiteArches["$suite"]="$(curl -fsSL "${packagesBase}/${suite}-pgdg/Release" | gawk -F ':[[:space:]]+' '$1 == "Architectures" { gsub(/[[:space:]]+/, "|", $2); print $2 }')"
fi
versionList="$(echo "${suitePackageList["$suite"]}"; curl -fsSL "${packagesBase}/${suite}-pgdg/${version}/binary-amd64/Packages.bz2" | bunzip2)"
fullVersion="$(echo "$versionList" | awk -F ': ' '$1 == "Package" { pkg = $2 } $1 == "Version" && pkg == "postgresql-'"$version"'" { print $2; exit }' || true)"
@ -48,6 +51,7 @@ for version in "${versions[@]}"; do
sed -e 's/%%PG_MAJOR%%/'"$version"'/g;' \
-e 's/%%PG_VERSION%%/'"$fullVersion"'/g' \
-e 's/%%DEBIAN_SUITE%%/'"$suite"'/g' \
-e 's/%%ARCH_LIST%%/'"${suiteArches["$suite"]}"'/g' \
Dockerfile-debian.template > "$version/Dockerfile"
if [ "$version" = '10' ]; then
# postgresql-contrib-10 package does not exist, but is provided by postgresql-10
@ -109,7 +113,8 @@ for version in "${versions[@]}"; do
travisEnv="\n - VERSION=$version VARIANT=$variant$travisEnv"
done
travisEnv='\n - VERSION='"$version$travisEnv"
travisEnv="\n - VERSION=$version FORCE_DEB_BUILD=1$travisEnv"
travisEnv="\n - VERSION=$version$travisEnv"
done
travis="$(awk -v 'RS=\n\n' '$1 == "env:" { $0 = "env:'"$travisEnv"'" } { printf "%s%s", $0, RS }' .travis.yml)"