From cc2bfea3dfd3bf02efb7e1dee9250a242b68f828 Mon Sep 17 00:00:00 2001 From: Roberto Barreda Date: Fri, 20 May 2016 11:50:31 +0200 Subject: [PATCH 1/7] add mqtt plugin --- .travis.yml | 2 ++ docker-entrypoint.sh | 30 ++++++++++++++++++++++++++++++ generate-stackbrew-library.sh | 2 +- mqtt/Dockerfile | 5 +++++ 4 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 mqtt/Dockerfile diff --git a/.travis.yml b/.travis.yml index 0e8232ac..b3ff1212 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,6 +13,8 @@ script: - ~/official-images/test/run.sh "$image" - docker build -t "$image:management" management - ~/official-images/test/run.sh "$image:management" + - docker build -t "$image:mqtt" mqtt + - ~/official-images/test/run.sh "$image:mqtt" after_script: - docker images diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 85a05c03..a96106cb 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -120,6 +120,36 @@ if [ "$1" = 'rabbitmq-server' ]; then fi fi + # If mqtt plugin is installed, then generate config consider this + if [ "$(rabbitmq-plugins list -m -e rabbitmq_mqtt)" ]; then + cat >> /etc/rabbitmq/rabbitmq.config <<-EOS + ] + }, + { rabbitmq_mqtt, [ + { allow_anonymous, true }, + { default_user, <<"$RABBITMQ_DEFAULT_USER">> }, + { default_pass, <<"$RABBITMQ_DEFAULT_PASS">> }, + { vhost, <<"$RABBITMQ_DEFAULT_VHOST">> }, + { exchange, <<"amq.topic">> }, + { subscription_ttl, 86400000 }, + { prefetch, 10 }, + { tcp_listen_options, [{backlog, 128}, + {nodelay, true}] }, + EOS + + if [ "$ssl" ]; then + cat >> /etc/rabbitmq/rabbitmq.config <<-EOS + { tcp_listeners, [ ] }, + { ssl_listeners, [ 8883 ] } + EOS + else + cat >> /etc/rabbitmq/rabbitmq.config <<-EOS + { tcp_listeners, [ 1883 ] }, + { ssl_listeners, [ ] } + EOS + fi + fi + cat >> /etc/rabbitmq/rabbitmq.config <<-'EOF' ] } diff --git a/generate-stackbrew-library.sh b/generate-stackbrew-library.sh index b9c480c5..cc07bfdf 100755 --- a/generate-stackbrew-library.sh +++ b/generate-stackbrew-library.sh @@ -22,7 +22,7 @@ for va in "${versionAliases[@]}"; do echo "$va: ${url}@${commit}" done -for variant in management; do +for variant in management mqtt; do echo for va in "${versionAliases[@]}"; do if [ "$va" = 'latest' ]; then diff --git a/mqtt/Dockerfile b/mqtt/Dockerfile new file mode 100644 index 00000000..af3d9a65 --- /dev/null +++ b/mqtt/Dockerfile @@ -0,0 +1,5 @@ +FROM rabbitmq + +RUN rabbitmq-plugins enable --offline rabbitmq_mqtt + +EXPOSE 1883 8883 From f8f126ce831c962409edd7c591de4677c09d9440 Mon Sep 17 00:00:00 2001 From: Roberto Barreda Date: Fri, 20 May 2016 12:12:27 +0200 Subject: [PATCH 2/7] fix rabbitmq version --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 21c8f320..2698b230 100644 --- a/Dockerfile +++ b/Dockerfile @@ -33,8 +33,8 @@ ENV RABBITMQ_LOGS=- RABBITMQ_SASL_LOGS=- RUN apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys F78372A06FF50C80464FC1B4F7B8CEA6056E8E56 RUN echo 'deb http://www.rabbitmq.com/debian testing main' > /etc/apt/sources.list.d/rabbitmq.list -ENV RABBITMQ_VERSION 3.6.1 -ENV RABBITMQ_DEBIAN_VERSION 3.6.1-1 +ENV RABBITMQ_VERSION 3.6.2 +ENV RABBITMQ_DEBIAN_VERSION 3.6.2-1 RUN apt-get update && apt-get install -y --no-install-recommends \ erlang-nox erlang-mnesia erlang-public-key erlang-crypto erlang-ssl erlang-asn1 erlang-inets erlang-os-mon erlang-xmerl erlang-eldap \ From 5ace5ce04a89f25e16e53f51b5820ef1473faed6 Mon Sep 17 00:00:00 2001 From: Roberto Barreda Date: Sat, 4 Jun 2016 20:37:54 +0200 Subject: [PATCH 3/7] reference robertobarreda docker user --- management/Dockerfile | 2 +- mqtt/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/management/Dockerfile b/management/Dockerfile index 48727d2d..1a3cb787 100644 --- a/management/Dockerfile +++ b/management/Dockerfile @@ -1,4 +1,4 @@ -FROM rabbitmq +FROM robertobarreda/rabbitmq RUN rabbitmq-plugins enable --offline rabbitmq_management diff --git a/mqtt/Dockerfile b/mqtt/Dockerfile index af3d9a65..21e07c8d 100644 --- a/mqtt/Dockerfile +++ b/mqtt/Dockerfile @@ -1,4 +1,4 @@ -FROM rabbitmq +FROM robertobarreda/rabbitmq RUN rabbitmq-plugins enable --offline rabbitmq_mqtt From 2987520cb01bb61c827ada2bf969ae73f1b11b45 Mon Sep 17 00:00:00 2001 From: Roberto Barreda Date: Sat, 4 Jun 2016 20:44:04 +0200 Subject: [PATCH 4/7] --force-yes on install --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 2698b230..43f3826e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -36,7 +36,7 @@ RUN echo 'deb http://www.rabbitmq.com/debian testing main' > /etc/apt/sources.li ENV RABBITMQ_VERSION 3.6.2 ENV RABBITMQ_DEBIAN_VERSION 3.6.2-1 -RUN apt-get update && apt-get install -y --no-install-recommends \ +RUN apt-get update && apt-get install -y --force-yes --no-install-recommends \ erlang-nox erlang-mnesia erlang-public-key erlang-crypto erlang-ssl erlang-asn1 erlang-inets erlang-os-mon erlang-xmerl erlang-eldap \ rabbitmq-server=$RABBITMQ_DEBIAN_VERSION \ && rm -rf /var/lib/apt/lists/* From d7b331da942f73d8414377629eb544b1fe868ad4 Mon Sep 17 00:00:00 2001 From: Roberto Barreda Date: Thu, 9 Jun 2016 16:46:02 +0200 Subject: [PATCH 5/7] make mqtt depend on management --- mqtt/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mqtt/Dockerfile b/mqtt/Dockerfile index 21e07c8d..f69f3e58 100644 --- a/mqtt/Dockerfile +++ b/mqtt/Dockerfile @@ -1,4 +1,4 @@ -FROM robertobarreda/rabbitmq +FROM robertobarreda/rabbitmq:management RUN rabbitmq-plugins enable --offline rabbitmq_mqtt From 8ac675ae716b59a65f63b6a17a8d8a7362d6df1d Mon Sep 17 00:00:00 2001 From: Roberto Barreda Date: Mon, 19 Sep 2016 18:26:56 +0200 Subject: [PATCH 6/7] fix mqtt config --- docker-entrypoint.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 3214ffe1..23c4e0dd 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -265,11 +265,11 @@ if [ "$1" = 'rabbitmq-server' ] && [ "$haveConfig" ]; then unset IFS rabbitMqttConfig+=( - '{ exchange, <<"amq.topic">> }', - '{ allow_anonymous, true }', - '{ subscription_ttl, 86400000 }', - '{ prefetch, 10 }', - '{ tcp_listen_options, [{backlog, 128}, {nodelay, true}] }', + '{ exchange, <<"amq.topic">> }' + '{ allow_anonymous, true }' + '{ subscription_ttl, 86400000 }' + '{ prefetch, 10 }' + '{ tcp_listen_options, [{backlog, 128}, {nodelay, true}] }' ) if [ "$haveSslConfig" ]; then rabbitMqttConfig+=( From 9fdba8825b573a7e83f93f76bf528fbf4e70fa0a Mon Sep 17 00:00:00 2001 From: Roberto Barreda Date: Thu, 13 Oct 2016 16:55:32 +0200 Subject: [PATCH 7/7] use base rabbitmq image use base image and load management plugin explicitly --- mqtt/Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mqtt/Dockerfile b/mqtt/Dockerfile index f69f3e58..4e2aaddb 100644 --- a/mqtt/Dockerfile +++ b/mqtt/Dockerfile @@ -1,5 +1,7 @@ -FROM robertobarreda/rabbitmq:management +FROM robertobarreda/rabbitmq +RUN rabbitmq-plugins enable --offline rabbitmq_management RUN rabbitmq-plugins enable --offline rabbitmq_mqtt +EXPOSE 15671 15672 EXPOSE 1883 8883