You've already forked postgres
mirror of
https://github.com/docker-library/postgres.git
synced 2025-07-29 21:41:20 +03:00
Adjust "update.sh" to work for 13/pre-release builds again
It turns out we *do* need to check the PG_MAJOR component (not just "main"), and the reason is that it's used for pre-release versions.
This commit is contained in:
@ -220,7 +220,7 @@ pg_setup_hba_conf() {
|
|||||||
echo
|
echo
|
||||||
if [ 'trust' = "$POSTGRES_HOST_AUTH_METHOD" ]; then
|
if [ 'trust' = "$POSTGRES_HOST_AUTH_METHOD" ]; then
|
||||||
echo '# warning trust is enabled for all connections'
|
echo '# warning trust is enabled for all connections'
|
||||||
echo '# see https://www.postgresql.org/docs/13/auth-trust.html'
|
echo '# see https://www.postgresql.org/docs/12/auth-trust.html'
|
||||||
fi
|
fi
|
||||||
echo "host all all all $POSTGRES_HOST_AUTH_METHOD"
|
echo "host all all all $POSTGRES_HOST_AUTH_METHOD"
|
||||||
} >> "$PGDATA/pg_hba.conf"
|
} >> "$PGDATA/pg_hba.conf"
|
||||||
|
55
update.sh
55
update.sh
@ -24,14 +24,39 @@ declare -A alpineVersion=(
|
|||||||
)
|
)
|
||||||
|
|
||||||
packagesBase='http://apt.postgresql.org/pub/repos/apt/dists/'
|
packagesBase='http://apt.postgresql.org/pub/repos/apt/dists/'
|
||||||
declare -A suitePackageList=() suiteArches=()
|
declare -A suitePackageList=() suiteVersionPackageList=() suiteArches=()
|
||||||
|
_raw_package_list() {
|
||||||
|
local suite="$1"; shift
|
||||||
|
local component="$1"; shift
|
||||||
|
local arch="$1"; shift
|
||||||
|
|
||||||
|
curl -fsSL "$packagesBase/$suite-pgdg/$component/binary-$arch/Packages.bz2" | bunzip2
|
||||||
|
}
|
||||||
fetch_suite_package_list() {
|
fetch_suite_package_list() {
|
||||||
local suite="$1"; shift
|
local suite="$1"; shift
|
||||||
local arch="${1:-amd64}"
|
local version="$1"; shift
|
||||||
|
local arch="$1"; shift
|
||||||
|
|
||||||
|
# normal (GA) releases end up in the "main" component of upstream's repository
|
||||||
if [ -z "${suitePackageList["$suite-$arch"]:+isset}" ]; then
|
if [ -z "${suitePackageList["$suite-$arch"]:+isset}" ]; then
|
||||||
suitePackageList["$suite-$arch"]="$(curl -fsSL "$packagesBase/$suite-pgdg/main/binary-$arch/Packages.bz2" | bunzip2)"
|
local suiteArchPackageList
|
||||||
|
suiteArchPackageList="$(_raw_package_list "$suite" 'main' "$arch")"
|
||||||
|
suitePackageList["$suite-$arch"]="$suiteArchPackageList"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# ... but pre-release versions (betas, etc) end up in the "PG_MAJOR" component (so we need to check both)
|
||||||
|
if [ -z "${suiteVersionPackageList["$suite-$version-$arch"]:+isset}" ]; then
|
||||||
|
local versionPackageList
|
||||||
|
versionPackageList="$(_raw_package_list "$suite" "$version" "$arch")"
|
||||||
|
suiteVersionPackageList["$suite-$version-$arch"]="$versionPackageList"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
awk_package_list() {
|
||||||
|
local suite="$1"; shift
|
||||||
|
local version="$1"; shift
|
||||||
|
local arch="$1"; shift
|
||||||
|
|
||||||
|
awk -F ': ' -v version="$version" "$@" <<<"${suitePackageList["$suite-$arch"]}"$'\n'"${suiteVersionPackageList["$suite-$version-$arch"]}"
|
||||||
}
|
}
|
||||||
fetch_suite_arches() {
|
fetch_suite_arches() {
|
||||||
local suite="$1"; shift
|
local suite="$1"; shift
|
||||||
@ -48,11 +73,13 @@ for version in "${versions[@]}"; do
|
|||||||
suite="${tag%%-slim}"
|
suite="${tag%%-slim}"
|
||||||
majorVersion="${version%%.*}"
|
majorVersion="${version%%.*}"
|
||||||
|
|
||||||
fetch_suite_package_list "$suite" 'amd64'
|
fetch_suite_package_list "$suite" "$version" 'amd64'
|
||||||
fullVersion="$(awk <<<"${suitePackageList["$suite-amd64"]}" -F ': ' -v version="$version" '
|
fullVersion="$(
|
||||||
$1 == "Package" { pkg = $2 }
|
awk_package_list "$suite" "$version" 'amd64' '
|
||||||
$1 == "Version" && pkg == "postgresql-" version { print $2; exit }
|
$1 == "Package" { pkg = $2 }
|
||||||
')"
|
$1 == "Version" && pkg == "postgresql-" version { print $2; exit }
|
||||||
|
'
|
||||||
|
)"
|
||||||
if [ -z "$fullVersion" ]; then
|
if [ -z "$fullVersion" ]; then
|
||||||
echo >&2 "error: missing postgresql-$version package!"
|
echo >&2 "error: missing postgresql-$version package!"
|
||||||
exit 1
|
exit 1
|
||||||
@ -61,11 +88,13 @@ for version in "${versions[@]}"; do
|
|||||||
fetch_suite_arches "$suite"
|
fetch_suite_arches "$suite"
|
||||||
versionArches=
|
versionArches=
|
||||||
for arch in ${suiteArches["$suite"]}; do
|
for arch in ${suiteArches["$suite"]}; do
|
||||||
fetch_suite_package_list "$suite" "$arch"
|
fetch_suite_package_list "$suite" "$version" "$arch"
|
||||||
archVersion="$(awk <<<"${suitePackageList["$suite-$arch"]}" -F ': ' -v version="$version" '
|
archVersion="$(
|
||||||
$1 == "Package" { pkg = $2 }
|
awk_package_list "$suite" "$version" "$arch" '
|
||||||
$1 == "Version" && pkg == "postgresql-" version { print $2; exit }
|
$1 == "Package" { pkg = $2 }
|
||||||
')"
|
$1 == "Version" && pkg == "postgresql-" version { print $2; exit }
|
||||||
|
'
|
||||||
|
)"
|
||||||
if [ "$archVersion" = "$fullVersion" ]; then
|
if [ "$archVersion" = "$fullVersion" ]; then
|
||||||
[ -z "$versionArches" ] || versionArches+=' | '
|
[ -z "$versionArches" ] || versionArches+=' | '
|
||||||
versionArches+="$arch"
|
versionArches+="$arch"
|
||||||
|
Reference in New Issue
Block a user