64 lines
1.2 KiB
Bash
Executable File
64 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
if [ "$RABBITMQ_ERLANG_COOKIE" ]; then
|
|
cookieFile='/var/lib/rabbitmq/.erlang.cookie'
|
|
if [ -e "$cookieFile" ]; then
|
|
if [ "$(cat "$cookieFile" 2>/dev/null)" != "$RABBITMQ_ERLANG_COOKIE" ]; then
|
|
echo >&2
|
|
echo >&2 "warning: $cookieFile contents do not match RABBITMQ_ERLANG_COOKIE"
|
|
echo >&2
|
|
fi
|
|
else
|
|
echo "$RABBITMQ_ERLANG_COOKIE" > "$cookieFile"
|
|
chmod 600 "$cookieFile"
|
|
chown rabbitmq "$cookieFile"
|
|
fi
|
|
fi
|
|
|
|
if [ "$1" = 'rabbitmq-server' ]; then
|
|
configs=(
|
|
# https://www.rabbitmq.com/configure.html
|
|
default_vhost
|
|
default_user
|
|
default_pass
|
|
)
|
|
|
|
haveConfig=
|
|
for conf in "${configs[@]}"; do
|
|
var="RABBITMQ_${conf^^}"
|
|
val="${!var}"
|
|
if [ "$val" ]; then
|
|
haveConfig=1
|
|
break
|
|
fi
|
|
done
|
|
|
|
if [ "$haveConfig" ]; then
|
|
cat > /etc/rabbitmq/rabbitmq.config <<-'EOH'
|
|
[
|
|
{rabbit,
|
|
[
|
|
EOH
|
|
for conf in "${configs[@]}"; do
|
|
var="RABBITMQ_${conf^^}"
|
|
val="${!var}"
|
|
[ "$val" ] || continue
|
|
cat >> /etc/rabbitmq/rabbitmq.config <<-EOC
|
|
{$conf, <<"$val">>},
|
|
EOC
|
|
done
|
|
cat >> /etc/rabbitmq/rabbitmq.config <<-'EOF'
|
|
{loopback_users, []}
|
|
]
|
|
}
|
|
].
|
|
EOF
|
|
fi
|
|
|
|
chown -R rabbitmq /var/lib/rabbitmq
|
|
set -- gosu rabbitmq "$@"
|
|
fi
|
|
|
|
exec "$@"
|