78 lines
1.7 KiB
Bash
78 lines
1.7 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
file_env() {
|
|
local var="$1"
|
|
local fileVar="${var}_FILE"
|
|
local def="${2:-}"
|
|
|
|
if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then
|
|
echo >&2 "error: both $var and $fileVar are set (but are exclusive)"
|
|
exit 1
|
|
fi
|
|
|
|
local val="$def"
|
|
|
|
if [ "${!var:-}" ]; then
|
|
val="${!var}"
|
|
elif [ "${!fileVar:-}" ]; then
|
|
val="$(<"${!fileVar}")"
|
|
fi
|
|
|
|
export "$var"="$val"
|
|
unset "$fileVar"
|
|
}
|
|
|
|
file_env "RABBITMQ_DEFAULT_PASS"
|
|
|
|
set -euo pipefail
|
|
|
|
# allow the container to be started with `--user`
|
|
if [[ "$1" == rabbitmq* ]] && [ "$(id -u)" = '0' ]; then
|
|
if [ "$1" = 'rabbitmq-server' ]; then
|
|
find /var/lib/rabbitmq \! -user rabbitmq -exec chown rabbitmq '{}' +
|
|
fi
|
|
|
|
exec gosu rabbitmq "$BASH_SOURCE" "$@"
|
|
fi
|
|
|
|
deprecatedEnvVars=(
|
|
RABBITMQ_DEFAULT_PASS_FILE
|
|
RABBITMQ_DEFAULT_USER_FILE
|
|
RABBITMQ_MANAGEMENT_SSL_CACERTFILE
|
|
RABBITMQ_MANAGEMENT_SSL_CERTFILE
|
|
RABBITMQ_MANAGEMENT_SSL_DEPTH
|
|
RABBITMQ_MANAGEMENT_SSL_FAIL_IF_NO_PEER_CERT
|
|
RABBITMQ_MANAGEMENT_SSL_KEYFILE
|
|
RABBITMQ_MANAGEMENT_SSL_VERIFY
|
|
RABBITMQ_SSL_CACERTFILE
|
|
RABBITMQ_SSL_CERTFILE
|
|
RABBITMQ_SSL_DEPTH
|
|
RABBITMQ_SSL_FAIL_IF_NO_PEER_CERT
|
|
RABBITMQ_SSL_KEYFILE
|
|
RABBITMQ_SSL_VERIFY
|
|
RABBITMQ_VM_MEMORY_HIGH_WATERMARK
|
|
)
|
|
hasOldEnv=
|
|
for old in "${deprecatedEnvVars[@]}"; do
|
|
if [ -n "${!old:-}" ]; then
|
|
echo >&2 "error: $old is set but deprecated"
|
|
hasOldEnv=1
|
|
fi
|
|
done
|
|
if [ -n "$hasOldEnv" ]; then
|
|
echo >&2 'error: deprecated environment variables detected'
|
|
echo >&2
|
|
echo >&2 'Please use a configuration file instead; visit https://www.rabbitmq.com/configure.html to learn more'
|
|
echo >&2
|
|
exit 1
|
|
fi
|
|
|
|
# if long and short hostnames are not the same, use long hostnames
|
|
if [ -z "${RABBITMQ_USE_LONGNAME:-}" ] && [ "$(hostname)" != "$(hostname -s)" ]; then
|
|
: "${RABBITMQ_USE_LONGNAME:=true}"
|
|
fi
|
|
|
|
exec "$@"
|