diff options
Diffstat (limited to 'docker/centos/binary')
| -rw-r--r-- | docker/centos/binary/rabbitmq/Dockerfile | 20 | ||||
| -rw-r--r-- | docker/centos/binary/rabbitmq/config-rabbit.sh | 56 |
2 files changed, 64 insertions, 12 deletions
diff --git a/docker/centos/binary/rabbitmq/Dockerfile b/docker/centos/binary/rabbitmq/Dockerfile index 9212d15eb..f42bc8307 100644 --- a/docker/centos/binary/rabbitmq/Dockerfile +++ b/docker/centos/binary/rabbitmq/Dockerfile @@ -1,18 +1,14 @@ FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%base:%%KOLLA_TAG%% MAINTAINER Kolla Project (https://launchpad.net/kolla) -# Install required packages -RUN yum -y install rabbitmq-server hostname && yum clean all +RUN yum -y install \ + hostname \ + rabbitmq-server && \ + yum clean all && \ + /usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management -# Run the management plugin -RUN /usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management +COPY rabbitmq.config rabbitmq-env.conf /etc/rabbitmq/ +COPY config-rabbit.sh /opt/kolla/config-rabbit.sh +COPY start.sh /start.sh -# Copy Rabbit conf files -ADD rabbitmq.config /etc/rabbitmq/ -ADD rabbitmq-env.conf /etc/rabbitmq/ - -# Copy start-up script -ADD start.sh /start.sh - -# Start Rabbit through the start script CMD ["/start.sh"] diff --git a/docker/centos/binary/rabbitmq/config-rabbit.sh b/docker/centos/binary/rabbitmq/config-rabbit.sh new file mode 100644 index 000000000..f78cd0656 --- /dev/null +++ b/docker/centos/binary/rabbitmq/config-rabbit.sh @@ -0,0 +1,56 @@ +#!/bin/bash + +. /opt/kolla/kolla-common.sh + +check_required_vars RABBITMQ_CLUSTER_COOKIE RABBITMQ_CLUSTER_NODES \ + RABBITMQ_LOG_BASE RABBITMQ_PASS RABBITMQ_USER + +RABBITMQ_CLUSTER_CONFIGURATION="" + +function configure_files { + + sed -i ' + s|@RABBITMQ_USER@|'"$RABBITMQ_USER"'|g + s|@RABBITMQ_PASS@|'"$RABBITMQ_PASS"'|g + s|@RABBITMQ_CLUSTER_NODES@|'"$RABBITMQ_CLUSTER_CONFIGURATION"'|g + ' /etc/rabbitmq/rabbitmq.config + + sed -i ' + s|@RABBITMQ_LOG_BASE@|'"$RABBITMQ_LOG_BASE"'|g + ' /etc/rabbitmq/rabbitmq-env.conf +} + +function configure_cluster { + echo "${RABBITMQ_CLUSTER_COOKIE}" > /var/lib/rabbitmq/.erlang.cookie + chown rabbitmq /var/lib/rabbitmq/.erlang.cookie + chmod 700 /var/lib/rabbitmq/.erlang.cookie + + HOSTNAME="" + IP_ADDRESS="" + DELIMETER="" + + for node in ${RABBITMQ_CLUSTER_NODES}; do + HOSTNAME=`echo ${node} | cut -d'@' -f1` + IP_ADDRESS=`echo ${node} | cut -d'@' -f2` + CLUSTER_NODES="${CLUSTER_NODES}${DELIMETER}rabbit@${HOSTNAME}" + echo "${IP_ADDRESS} ${HOSTNAME}" >> /etc/hosts + DELIMETER="," + done + RABBITMQ_CLUSTER_CONFIGURATION="{cluster_nodes, {[$CLUSTER_NODES], disc}}," +} + +function configure_rabbit { + if [ "$RABBITMQ_CLUSTER_NODES" ] && [ "$RABBITMQ_CLUSTER_COOKIE" ]; then + configure_cluster + elif [ "$RABBITMQ_SERVICE_HOST" ]; then + # work around: + # https://bugs.launchpad.net/ubuntu/+source/rabbitmq-server/+bug/653405 + echo "${RABBITMQ_SERVICE_HOST} `/usr/bin/hostname -s`" > /etc/hosts + else + echo "You need RABBITMQ_SERVICE_HOST or RABBITMQ_CLUSTER_NODES & " \ + " RABBITMQ_CLUSTER_COOKIES variables" + exit 1 + fi + + configure_files +} |
