70 lines
2.9 KiB
Bash
Executable File
70 lines
2.9 KiB
Bash
Executable File
#!/bin/bash -e
|
|
|
|
. /opt/bitnami/base/functions
|
|
. /opt/bitnami/base/helpers
|
|
|
|
print_welcome_page
|
|
|
|
if [[ "$1" == "nami" && "$2" == "start" ]] || [[ "$1" == "/run.sh" ]]; then
|
|
# Copy mounted configuration files
|
|
PERSIST_CONF_DIR=/bitnami/postgresql/conf
|
|
CONF_DIR=/opt/bitnami/postgresql/conf
|
|
if [[ -d "$PERSIST_CONF_DIR" ]]; then
|
|
mkdir -p $CONF_DIR
|
|
cp -r $PERSIST_CONF_DIR/. $CONF_DIR
|
|
fi
|
|
|
|
if ! getent passwd "$(id -u)" &> /dev/null && [ -e /usr/lib/libnss_wrapper.so ]; then
|
|
export LD_PRELOAD='/usr/lib/libnss_wrapper.so'
|
|
# shellcheck disable=SC2155
|
|
export NSS_WRAPPER_PASSWD="$(mktemp)"
|
|
# shellcheck disable=SC2155
|
|
export NSS_WRAPPER_GROUP="$(mktemp)"
|
|
echo "postgres:x:$(id -u):$(id -g):PostgreSQL:$PGDATA:/bin/false" > "$NSS_WRAPPER_PASSWD"
|
|
echo "postgres:x:$(id -g):" > "$NSS_WRAPPER_GROUP"
|
|
fi
|
|
|
|
if [[ -n $POSTGRESQL_PASSWORD_FILE ]]; then
|
|
declare PASSWORD_AUX
|
|
PASSWORD_AUX="$(< "${POSTGRESQL_PASSWORD_FILE}")"
|
|
export POSTGRESQL_PASSWORD=$PASSWORD_AUX
|
|
fi
|
|
|
|
if [[ -n $POSTGRESQL_REPLICATION_PASSWORD_FILE ]]; then
|
|
declare REPLICATION_PASSWORD_AUX
|
|
REPLICATION_PASSWORD_AUX="$(< "${POSTGRESQL_REPLICATION_PASSWORD_FILE}")"
|
|
export POSTGRESQL_REPLICATION_PASSWORD=$REPLICATION_PASSWORD_AUX
|
|
fi
|
|
|
|
declareEnvironmentVariableAlias() {
|
|
if env | grep -q "$2"; then
|
|
export $1=${!2}
|
|
fi
|
|
}
|
|
|
|
# Alias created for official postgre image compatibility
|
|
declareEnvironmentVariableAlias POSTGRESQL_PASSWORD POSTGRES_PASSWORD
|
|
declareEnvironmentVariableAlias POSTGRESQL_DATABASE POSTGRES_DB
|
|
declareEnvironmentVariableAlias POSTGRESQL_USERNAME POSTGRES_USER
|
|
declareEnvironmentVariableAlias POSTGRESQL_DATA_DIR PGDATA
|
|
declareEnvironmentVariableAlias POSTGRESQL_INITDB_WALDIR POSTGRES_INITDB_WALDIR
|
|
|
|
# Alias created for maintain consistency using prefix
|
|
declareEnvironmentVariableAlias POSTGRESQL_CLUSTER_APP_NAME POSTGRES_CLUSTER_APP_NAME
|
|
declareEnvironmentVariableAlias POSTGRESQL_MASTER_HOST POSTGRES_MASTER_HOST
|
|
declareEnvironmentVariableAlias POSTGRESQL_MASTER_PORT_NUMBER POSTGRES_MASTER_PORT_NUMBER
|
|
declareEnvironmentVariableAlias POSTGRESQL_NUM_SYNCHRONOUS_REPLICAS POSTGRES_NUM_SYNCHRONOUS_REPLICAS
|
|
declareEnvironmentVariableAlias POSTGRESQL_PORT_NUMBER POSTGRES_PORT_NUMBER
|
|
declareEnvironmentVariableAlias POSTGRESQL_REPLICATION_MODE POSTGRES_REPLICATION_MODE
|
|
declareEnvironmentVariableAlias POSTGRESQL_REPLICATION_PASSWORD POSTGRES_REPLICATION_PASSWORD
|
|
declareEnvironmentVariableAlias POSTGRESQL_REPLICATION_USER POSTGRES_REPLICATION_USER
|
|
declareEnvironmentVariableAlias POSTGRESQL_SYNCHRONOUS_COMMIT_MODE POSTGRES_SYNCHRONOUS_COMMIT_MODE
|
|
declareEnvironmentVariableAlias POSTGRESQL_PASSWORD_FILE POSTGRES_PASSWORD_FILE
|
|
declareEnvironmentVariableAlias POSTGRESQL_REPLICATION_PASSWORD_FILE POSTGRES_REPLICATION_PASSWORD_FILE
|
|
|
|
nami_initialize postgresql
|
|
info "Starting postgresql... "
|
|
fi
|
|
|
|
exec tini -- "$@"
|