summaryrefslogtreecommitdiff
path: root/rabbitmq
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2017-03-30 15:13:16 +0200
committerschneefux <schneefux+commit@schneefux.xyz>2017-03-30 15:13:16 +0200
commit9524f15fcbe8f16d7832425ace8447fd40f8526d (patch)
tree55971766655d20d3a30af04dfecd18cd69257c2d /rabbitmq
parentcac48b5b99e3a7df24d9635623982f95322fa73e (diff)
downloadvaindock-9524f15fcbe8f16d7832425ace8447fd40f8526d.tar.gz
vaindock-9524f15fcbe8f16d7832425ace8447fd40f8526d.zip
set up rabbitmq for webstomp and auth
Diffstat (limited to 'rabbitmq')
-rw-r--r--rabbitmq/Dockerfile12
-rw-r--r--rabbitmq/add_users.sh29
-rw-r--r--rabbitmq/custom-rabbitmq.config24
3 files changed, 65 insertions, 0 deletions
diff --git a/rabbitmq/Dockerfile b/rabbitmq/Dockerfile
new file mode 100644
index 0000000..cfb03a0
--- /dev/null
+++ b/rabbitmq/Dockerfile
@@ -0,0 +1,12 @@
+FROM rabbitmq:3-alpine
+
+RUN rabbitmq-plugins enable --offline rabbitmq_management rabbitmq_web_stomp
+
+COPY custom-rabbitmq.config /etc/rabbitmq/rabbitmq.config
+RUN chmod 666 /etc/rabbitmq/rabbitmq.config
+
+COPY add_users.sh /pre_docker-entrypoint.sh
+RUN chmod 755 /pre_docker-entrypoint.sh
+ENTRYPOINT /pre_docker-entrypoint.sh
+
+EXPOSE 15672 15674
diff --git a/rabbitmq/add_users.sh b/rabbitmq/add_users.sh
new file mode 100644
index 0000000..6a12ffe
--- /dev/null
+++ b/rabbitmq/add_users.sh
@@ -0,0 +1,29 @@
+#!/usr/bin/env bash
+set -e
+
+(
+count=0;
+# Execute list_users until service is up and running
+until timeout 5 rabbitmqctl list_users >/dev/null 2>/dev/null || (( count++ >= 20 )); do sleep 1; done;
+if ! rabbitmqctl list_users | grep updater > /dev/null
+then
+ # rabbitmqctl delete_user guest
+ rabbitmqctl add_user web web
+ rabbitmqctl set_permissions -p / web "^stomp-subscription-" "^stomp-subscription-" "^(amq.topic$|stomp-subscription-)"
+ # read only amq.topic on host /, but allow stomp subscribe
+ # services below: all allowed
+ rabbitmqctl add_user updater updater
+ rabbitmqctl set_permissions -p / updater ".*" ".*" ".*"
+ rabbitmqctl add_user apigrabber apigrabber
+ rabbitmqctl set_permissions -p / apigrabber ".*" ".*" ".*"
+ rabbitmqctl add_user processor processor
+ rabbitmqctl set_permissions -p / processor ".*" ".*" ".*"
+
+ echo "setup completed"
+else
+ echo "already setup"
+fi
+) &
+
+# Call original entrypoint
+exec docker-entrypoint.sh rabbitmq-server $@
diff --git a/rabbitmq/custom-rabbitmq.config b/rabbitmq/custom-rabbitmq.config
new file mode 100644
index 0000000..8ab23ae
--- /dev/null
+++ b/rabbitmq/custom-rabbitmq.config
@@ -0,0 +1,24 @@
+[
+ { rabbitmq_stomp, [
+ { default_user, [
+ { login, "web" },
+ { passcode, "web" }
+ ] }
+ ] },
+ { rabbitmq_web_stomp, [
+ { tcp_config, [
+ { "127.0.0.1", "15674" },
+ { "::1", "15674" }
+ ] }
+ ] },
+ { rabbit, [
+ { loopback_users, [ ] },
+ { tcp_listeners, [ 5672 ] },
+ { ssl_listeners, [ ] },
+ { hipe_compile, true }
+ ] },
+ { rabbitmq_management, [ { listener, [
+ { port, 15672 },
+ { ssl, false }
+ ] } ] }
+].