diff options
| author | schneefux <schneefux+commit@schneefux.xyz> | 2017-03-30 15:13:16 +0200 |
|---|---|---|
| committer | schneefux <schneefux+commit@schneefux.xyz> | 2017-03-30 15:13:16 +0200 |
| commit | 9524f15fcbe8f16d7832425ace8447fd40f8526d (patch) | |
| tree | 55971766655d20d3a30af04dfecd18cd69257c2d | |
| parent | cac48b5b99e3a7df24d9635623982f95322fa73e (diff) | |
| download | vaindock-9524f15fcbe8f16d7832425ace8447fd40f8526d.tar.gz vaindock-9524f15fcbe8f16d7832425ace8447fd40f8526d.zip | |
set up rabbitmq for webstomp and auth
| -rw-r--r-- | docker-compose.yml | 23 | ||||
| -rw-r--r-- | rabbitmq/Dockerfile | 12 | ||||
| -rw-r--r-- | rabbitmq/add_users.sh | 29 | ||||
| -rw-r--r-- | rabbitmq/custom-rabbitmq.config | 24 |
4 files changed, 77 insertions, 11 deletions
diff --git a/docker-compose.yml b/docker-compose.yml index a4b5ce5..eec099c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -39,7 +39,7 @@ services: ports: - "2222:22" links: - - vaindock_rabbitmq + - vaindock_queue tty: true ### PHP-FPM Container ####################################### @@ -94,9 +94,9 @@ services: volumes: - ../updater:/usr/src/app depends_on: - - vaindock_rabbitmq + - vaindock_queue environment: - - RABBITMQ_URI=amqp://vaindock_rabbitmq + - RABBITMQ_URI=amqp://updater:updater@vaindock_queue/ env_file: - local.env @@ -105,9 +105,9 @@ services: volumes: - ../apigrabber:/usr/src/app depends_on: - - vaindock_rabbitmq + - vaindock_queue environment: - - RABBITMQ_URI=amqp://vaindock_rabbitmq + - RABBITMQ_URI=amqp://apigrabber:apigrabber@vaindock_queue/ env_file: - local.env @@ -116,10 +116,10 @@ services: volumes: - ../processor:/usr/src/app depends_on: - - vaindock_rabbitmq + - vaindock_queue - vaindock_db-web environment: - - RABBITMQ_URI=amqp://vaindock_rabbitmq + - RABBITMQ_URI=amqp://processor:processor@vaindock_queue/ - DATABASE_URI=mysql://vainweb:vainweb@vaindock_db-web/vainweb vaindock_db-web: @@ -144,15 +144,16 @@ services: volumes: - /sessions - vaindock_rabbitmq: - image: rabbitmq:3-management-alpine + vaindock_queue: + build: ./rabbitmq volumes: - - vaindock_rabbitmq-data:/var/lib/rabbitmq + - vaindock_queue-data:/var/lib/queue ports: - "4369:4369" - "5671:5671" - "5672:5672" - "25672:25672" + - "15674:15674" # web-stomp - "8881:15672" # management guest/guest environment: - RABBITMQ_HIPE_COMPILE=1 @@ -160,7 +161,7 @@ services: volumes: vaindock_db-web-data: driver: "local" - vaindock_rabbitmq-data: + vaindock_queue-data: driver: "local" sessions: ## nothing is connected to this (- ./data/sessions:/sessions) driver: "local" 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 } + ] } ] } +]. |
