Increase startup times (#501)

* Increase startup times

* fix single DB variable

* remove duplicated function
pull/502/head v17.3.5--v2025.08.01--d2c587a
mazano 2025-08-01 23:15:28 +02:00 zatwierdzone przez GitHub
rodzic 210e43d31b
commit d2c587ae91
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: B5690EEEBB952194
2 zmienionych plików z 43 dodań i 22 usunięć

Wyświetl plik

@ -457,8 +457,8 @@ fi
IFS=','
read -a dbarr <<< "$POSTGRES_DBNAME"
SINGLE_DB=${dbarr[0]}
echo ${SINGLE_DB} > /tmp/pg_dbname.txt
export SINGLE_DB=${dbarr[0]}
if [ -z "${TIMEZONE}" ]; then
@ -644,31 +644,55 @@ function extension_install() {
}
function directory_checker() {
DATA_PATH=$1
if [ -d "$DATA_PATH" ];then
local DATA_PATH=$1
if [ -d "$DATA_PATH" ]; then
local DB_USER_PERM
local DB_GRP_PERM
DB_USER_PERM=$(stat -c '%U' "${DATA_PATH}")
DB_GRP_PERM=$(stat -c '%G' "${DATA_PATH}")
if [[ ${DB_USER_PERM} != "${USER}" ]] && [[ ${DB_GRP_PERM} != "${GROUP}" ]];then
chown -R "${USER}":"${GROUP}" "${DATA_PATH}"
fi
fi
if [[ ${DB_USER_PERM} != "${USER}" ]] || [[ ${DB_GRP_PERM} != "${GROUP}" ]]; then
chown -R "${USER}:${GROUP}" "${DATA_PATH}"
fi
else
chown "${USER}:${GROUP}" "${DATA_PATH}"
fi
}
function non_root_permission() {
USER="$1"
GROUP="$2"
path_envs=("${DATADIR}" "${WAL_ARCHIVE}" "${SCRIPTS_LOCKFILE_DIR}" "${CONF_LOCKFILE_DIR}" "${EXTRA_CONF_DIR}" "${SSL_DIR}" "${POSTGRES_INITDB_WALDIR}")
for dir_names in "${path_envs[@]}";do
if [ ! -z "${dir_names}" ];then
directory_checker "${dir_names}"
fi
local START_GLOBAL=$(date +%s%N)
path_envs=(
"${DATADIR}" "${WAL_ARCHIVE}" "${SCRIPTS_LOCKFILE_DIR}"
"${CONF_LOCKFILE_DIR}" "${EXTRA_CONF_DIR}" "${SSL_DIR}" "${POSTGRES_INITDB_WALDIR}"
)
for dir_name in "${path_envs[@]}"; do
[[ -n "$dir_name" ]] && directory_checker "$dir_name"
done
services=("/usr/lib/postgresql/" "/etc/" "/var/log/postgresql" "/var/run/!(secrets)" "/var/lib/" "/usr/bin" "/tmp" "/scripts")
for paths in "${services[@]}"; do
directory_checker "${paths}"
services=(
"/usr/lib/postgresql/${POSTGRES_MAJOR_VERSION}/bin" "/var/log/postgresql"
"/var/run/postgresql" ${DATADIR} "/scripts" "/usr/share/postgresql/${POSTGRES_MAJOR_VERSION}"
"${SSL_DIR}" "${WAL_ARCHIVE}" "${SCRIPTS_LOCKFILE_DIR}" "${CONF_LOCKFILE_DIR}" "${EXTRA_CONF_DIR}" "/etc/ssl"
"/etc/postgresql/${POSTGRES_MAJOR_VERSION}/main" "/tmp/pg_*"
)
for path in "${services[@]}"; do
for expanded in $path; do
directory_checker "$expanded"
done
done
chmod -R 750 "${DATADIR}" ${WAL_ARCHIVE}
local END_GLOBAL=$(date +%s%N)
local TOTAL_ELAPSED=$(( (END_GLOBAL - START_GLOBAL) / 1000000 ))
echo -e "[Entrypoint] Total time spent in non_root_permission, changing ownership of directories: \e[1;31m ${TOTAL_ELAPSED} \e[1;31m ms \033[0m"
}
function role_check() {

Wyświetl plik

@ -1,10 +1,6 @@
#!/usr/bin/env bash
source /scripts/env-data.sh
SINGLE_DB=$(cat /tmp/pg_dbname.txt)
INITDB_WALDIR_FLAG=""
@ -75,10 +71,11 @@ EOF
fi
fi;
non_root_permission postgres postgres
#non_root_permission postgres postgres
# Set proper permissions
# needs to be done as root:
chown -R postgres:postgres "${DATADIR}" "${WAL_ARCHIVE}"
chown -R postgres:postgres "${DATADIR}" "${WAL_ARCHIVE}" "${SSL_DIR}"
chmod -R 750 "${DATADIR}" "${WAL_ARCHIVE}"
# test database existing