1
+ #! /usr/bin/env bash
2
+
3
+ LOCAL_SCRIPT=" $( cd " $( dirname " ${BASH_SOURCE[0]} " ) " && pwd ) "
4
+
5
+ RABBITMQ_IMAGE_TAG=${RABBITMQ_IMAGE_TAG:- 3.11}
6
+ RABBITMQ_IMAGE=${RABBITMQ_IMAGE:- rabbitmq}
7
+
8
+ wait_for_message () {
9
+ while ! docker logs " $1 " | grep -q " $2 " ;
10
+ do
11
+ sleep 5
12
+ echo " Waiting 5 seconds for $1 to start..."
13
+ done
14
+ }
15
+
16
+ make -C " ${PWD} " /tls-gen/basic
17
+
18
+ mv tls-gen/basic/result/server_$( hostname -s) _certificate.pem tls-gen/basic/result/server_certificate.pem
19
+ mv tls-gen/basic/result/server_$( hostname -s) _key.pem tls-gen/basic/result/server_key.pem
20
+ mv tls-gen/basic/server_$( hostname -s) tls-gen/basic/server
21
+ mv tls-gen/basic/client_$( hostname -s) tls-gen/basic/client
22
+
23
+ mkdir -p rabbitmq-configuration/tls
24
+
25
+ cp -R " ${PWD} " /tls-gen/basic/* rabbitmq-configuration/tls
26
+ chmod -R o+r rabbitmq-configuration/tls/*
27
+ ./mvnw -q clean resources:testResources -Dtest-tls-certs.dir=/etc/rabbitmq/tls
28
+ cp target/test-classes/
[email protected] rabbitmq-configuration/
[email protected]
29
+ cp target/test-classes/
[email protected] rabbitmq-configuration/
[email protected]
30
+
31
+ echo " Running RabbitMQ ${RABBITMQ_IMAGE} :${RABBITMQ_IMAGE_TAG} "
32
+
33
+ docker rm -f rabbitmq 2> /dev/null || echo " rabbitmq was not running"
34
+ docker run -d --name rabbitmq \
35
+ --network host \
36
+ -v " ${PWD} " /rabbitmq-configuration:/etc/rabbitmq \
37
+ --env RABBITMQ_CONFIG_FILE=/etc/rabbitmq/
[email protected] \
38
+ --env RABBITMQ_NODENAME=rabbit@$( hostname) \
39
+ --env RABBITMQ_NODE_PORT=5672 \
40
+ --env RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS=" -setcookie do-not-do-this-in-production" \
41
+ " ${RABBITMQ_IMAGE} " :" ${RABBITMQ_IMAGE_TAG} "
42
+
43
+ # for CLI commands to share the same cookie
44
+ docker exec rabbitmq bash -c " echo 'do-not-do-this-in-production' > /var/lib/rabbitmq/.erlang.cookie"
45
+ docker exec rabbitmq chmod 0600 /var/lib/rabbitmq/.erlang.cookie
46
+
47
+ wait_for_message rabbitmq " completed with"
48
+
49
+ docker run -d --name hare \
50
+ --network host \
51
+ -v " ${PWD} " /rabbitmq-configuration:/etc/rabbitmq \
52
+ --env RABBITMQ_CONFIG_FILE=/etc/rabbitmq/
[email protected] \
53
+ --env RABBITMQ_NODENAME=hare@$( hostname) \
54
+ --env RABBITMQ_NODE_PORT=5673 \
55
+ --env RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS=" -setcookie do-not-do-this-in-production" \
56
+ " ${RABBITMQ_IMAGE} " :" ${RABBITMQ_IMAGE_TAG} "
57
+
58
+ # for CLI commands to share the same cookie
59
+ docker exec hare bash -c " echo 'do-not-do-this-in-production' > /var/lib/rabbitmq/.erlang.cookie"
60
+ docker exec hare chmod 0600 /var/lib/rabbitmq/.erlang.cookie
61
+
62
+ wait_for_message hare " completed with"
63
+
64
+ docker exec hare rabbitmqctl --node hare@$( hostname) status
65
+
66
+ docker exec rabbitmq rabbitmq-diagnostics --node rabbit@$( hostname) is_running
67
+ docker exec hare rabbitmq-diagnostics --node hare@$( hostname) is_running
68
+
69
+ docker exec hare rabbitmqctl --node hare@$( hostname) stop_app
70
+ docker exec hare rabbitmqctl --node hare@$( hostname) join_cluster rabbit@$( hostname)
71
+ docker exec hare rabbitmqctl --node hare@$( hostname) start_app
72
+
73
+ sleep 10
74
+
75
+ docker exec hare rabbitmqctl --node hare@$( hostname) await_startup
76
+
77
+ docker exec rabbitmq rabbitmq-diagnostics --node rabbit@$( hostname) erlang_version
78
+ docker exec rabbitmq rabbitmqctl --node rabbit@$( hostname) version
79
+ docker exec rabbitmq rabbitmqctl --node rabbit@$( hostname) status
80
+ docker exec rabbitmq rabbitmqctl --node rabbit@$( hostname) cluster_status
0 commit comments