私はドッカークラウド上でそれを設定する方法についてのガイドを見つけることができなかったので、ここでの説明:
- は、お好みのホスティングプロバイダとドッカークラウド上のGUIを介して2つ(またはそれ以上)のノードを作成します。 (私はAWSを選択しました)
- DockerクラウドのGUIからノードクラスタを作成し、作成したノードだけを選択してください。
- GitHubに事前設定されたイメージを使用しました。
Dockerfile
FROM rabbitmq:3.5.3-management
MAINTAINER Dimitris Kapanidis [email protected]
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"]
(特にドッカークラウドのための)重要な部分は、のRabbitMQクラスタファイルです:ドッカークラウドに
#!/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} [email protected]$CLUSTER_WITH
rabbitmqctl start_app
# Tail to keep the a foreground process active..
tail -f /var/log/rabbitmq/*
fi
、新しいサービスを作成し、 harbur/rabbitmq-cluster
を検索してください。イメージを展開するときは、「すべてのノードに展開」を選択し、タグを使用してクラスタノードを識別します。環境変数で
、次のように入力します CLUSTER_WITH:RabbitMQのクラスタ-1(あなたの最初のインスタンスの名前) ERLANG_COOKIE:
ABCDEFGのRabbitMQクラスタスクリプトがすべてのノード (ウサギ上で実行されます-mq-cluster-1、rabbit-mq-cluster-2など)ので、環境変数 は、最初のホストではないホストに参加するようにします。 これにより、Docker Cloudを使用して拡張でき、新しいノード が最初のノードで自動的にクラスタ化されます。
ここで私はこの質問に答えるhttp://stackoverflow.com/a/41307591/1437693。あなたの場合は、フラグ 'RABBITMQ_USE_LONGNAME'を設定してください。 –
[単純なドッキングRabbitMQクラスタを設定するにはどうすればよいですか?](http://stackoverflow.com/questions/41302117/how-do-i-set-up-a-simple-dockerized-rabbitmq-cluster) –