我正在尝试通过DockerCloud 设置RabbitMQ集群,并且有点丢失。
有很多教程,但是我无法弄清楚Docker Cloud是如何创建集群的,因此我可以部署和连接两个正在运行的RabbitMQ服务?
到目前为止我所拥有的:
现在我不知道从那里去哪里。
我有问题:
任何指导或指向正确方向的指导都将受到高度赞赏。
最佳答案
由于我找不到如何在Docker Cloud上进行设置的指南,因此在此进行说明:
Dockerfile
FROM rabbitmq:3.5.3-management
MAINTAINER Dimitris Kapanidis dimitris.kapanidis@harbur.io
COPY rabbitmq-cluster /usr/local/bin/
COPY pre-entrypoint.sh /
EXPOSE 5672 15672 25672 4369 9100 9101 9102 9103 9104 9105
ENTRYPOINT ["/pre-entrypoint.sh"]
CMD ["rabbitmq-cluster"]
重要的部分(尤其是对于Docker Cloud)是 rabbitmq-cluster文件:
#!/bin/bash
hostname=`hostname`
RABBITMQ_NODENAME=${RABBITMQ_NODENAME:-rabbit}
if [ -z "$CLUSTER_WITH" -o "$CLUSTER_WITH" = "$hostname" ]; then
echo "Running as single server"
rabbitmq-server
else
echo "Running as clustered server"
/usr/sbin/rabbitmq-server -detached
rabbitmqctl stop_app
echo "Joining cluster $CLUSTER_WITH"
rabbitmqctl join_cluster ${ENABLE_RAM:+--ram} $RABBITMQ_NODENAME@$CLUSTER_WITH
rabbitmqctl start_app
# Tail to keep the a foreground process active..
tail -f /var/log/rabbitmq/*
fi
在Docker Cloud中,创建一个新服务并搜索
harbur/rabbitmq-cluster
。部署镜像时,选择“在每个节点上部署”,然后使用标签来标识您的群集节点。在环境变量中,输入:
CLUSTER_WITH:rabbitmq-cluster-1(第一个实例的名称)
ERLANG_COOKIE:abcdefg