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 e070eba9..23c4e0dd 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -253,12 +253,41 @@ if [ "$1" = 'rabbitmq-server' ] && [ "$haveConfig" ]; then '{ ssl, false }' ) fi - fullConfig+=( "{ rabbitmq_management, $(rabbit_array "{ listener, $(rabbit_array "${rabbitManagementListenerConfig[@]}") }") }" ) fi + # If mqtt plugin is installed, then generate config consider this + if [ "$(rabbitmq-plugins list -m -e rabbitmq_mqtt)" ]; then + IFS=$'\n' + rabbitMqttConfig+=( $(rabbit_env_config '' "${rabbitConfigKeys[@]}") ) + unset IFS + + rabbitMqttConfig+=( + '{ exchange, <<"amq.topic">> }' + '{ allow_anonymous, true }' + '{ subscription_ttl, 86400000 }' + '{ prefetch, 10 }' + '{ tcp_listen_options, [{backlog, 128}, {nodelay, true}] }' + ) + if [ "$haveSslConfig" ]; then + rabbitMqttConfig+=( + "{ tcp_listeners, $(rabbit_array) }" + "{ ssl_listeners, $(rabbit_array 8883) }" + "{ ssl_options, $(rabbit_array "${rabbitSslOptions[@]}") }" + ) + else + rabbitMqttConfig+=( + "{ tcp_listeners, $(rabbit_array 1883) }" + "{ ssl_listeners, $(rabbit_array) }" + ) + fi + fullConfig+=( + "{ rabbitmq_mqtt, $(rabbit_array "${rabbitMqttConfig[@]}") }" + ) + fi + echo "$(rabbit_array "${fullConfig[@]}")." > /etc/rabbitmq/rabbitmq.config fi diff --git a/generate-stackbrew-library.sh b/generate-stackbrew-library.sh index 9e6c9f13..27e0085d 100755 --- a/generate-stackbrew-library.sh +++ b/generate-stackbrew-library.sh @@ -58,7 +58,7 @@ cat <<-EOE GitCommit: $commit EOE -for variant in management; do +for variant in management mqtt; do commit="$(dirCommit "$variant")" variantAliases=( "${versionAliases[@]/%/-$variant}" ) 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 new file mode 100644 index 00000000..4e2aaddb --- /dev/null +++ b/mqtt/Dockerfile @@ -0,0 +1,7 @@ +FROM robertobarreda/rabbitmq + +RUN rabbitmq-plugins enable --offline rabbitmq_management +RUN rabbitmq-plugins enable --offline rabbitmq_mqtt + +EXPOSE 15671 15672 +EXPOSE 1883 8883