-
Notifications
You must be signed in to change notification settings - Fork 3.6k
/
Copy pathstart-broker.sh
executable file
·77 lines (61 loc) · 2.06 KB
/
start-broker.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/usr/bin/env bash
set -o errexit
set -o pipefail
# set -o xtrace
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
readonly script_dir
echo "[INFO] script_dir: '$script_dir'"
readonly docker_name_prefix='java-stream-mvn'
readonly rmq_docker_name="$docker_name_prefix-rabbitmq"
readonly rmq_image=${RABBITMQ_IMAGE:-rabbitmq:3-management}
readonly rmq_config_dir="$script_dir/rmq-conf"
if [[ $1 == 'pull' ]]
then
readonly docker_pull_args='--pull always'
else
readonly docker_pull_args=''
fi
set -o nounset
function config_rabbitmq
{
mkdir -p "$rmq_config_dir"
echo '[rabbitmq_top,rabbitmq_management,rabbitmq_stream,rabbitmq_stream_management,rabbitmq_amqp1_0].' > "$rmq_config_dir/enabled_plugins"
echo 'loopback_users = none' > "$rmq_config_dir/rabbitmq.conf"
}
function start_rabbitmq
{
echo "[INFO] starting RabbitMQ server docker container"
docker rm --force "$rmq_docker_name" 2>/dev/null || echo "[INFO] $rmq_docker_name was not running"
# shellcheck disable=SC2086
docker run --detach $docker_pull_args \
--name "$rmq_docker_name" \
--env 'RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS=-rabbitmq_stream advertised_host localhost' \
--network host \
--volume "$rmq_config_dir:/etc/rabbitmq:ro" \
"$rmq_image"
}
function wait_rabbitmq
{
set +o errexit
declare -i count=12
while (( count > 0 )) && [[ "$(docker inspect --format='{{.State.Running}}' "$rmq_docker_name")" != 'true' ]]
do
echo '[WARNING] RabbitMQ container is not yet running...'
sleep 5
(( count-- ))
done
declare -i count=12
while (( count > 0 )) && ! docker exec "$rmq_docker_name" epmd -names | grep -F 'name rabbit'
do
echo '[WARNING] epmd is not reporting rabbit name just yet...'
sleep 5
(( count-- ))
done
docker exec "$rmq_docker_name" rabbitmqctl await_startup
set -o errexit
}
config_rabbitmq
start_rabbitmq
wait_rabbitmq
docker exec "$rmq_docker_name" rabbitmq-diagnostics erlang_version
docker exec "$rmq_docker_name" rabbitmqctl version