私はawsコンテナサービスでrabbitmqクラスターをセットアップしようとしています。すべてのノードで/var/lib/rabbitmq/.erlang.cookie
を同じにする必要があります。したがって、実行時にすべてのrabbitmqコンテナーについて、RABBITMQ_ERLANG_COOKIE
環境変数を渡します。これは、ここのドキュメントによると https://hub.docker.com/_/rabbitmq/ と書く必要があります。 /var/lib/rabbitmq/.erlang.cookie
に。
実行中のコンテナを調べると、環境変数RABBITMQ_ERLANG_COOKIE=QOKWQHQKXXTBIEAOPWKE
が存在することがわかりますが、cat /var/lib/rabbitmq/.erlang.cookie
の場合、別の値AYMNAPKRPCPJVPFYAJZX
を取得します。
その結果、すべてのrabbitmqコンテナーは異なる.erlang.cookie
を持ち、クラスターを形成できません。
環境変数からのCookieが設定されていないのはなぜですか?ここで何が欠けているのでしょうか?
私はrabbitmq:3.6.9を使用しています-高山の画像。
非常によく似た問題を検索するとこのスレッドに遭遇しますが、環境変数はERLANG_COOKIEです。RABBITMQ_ERLANG_COOKIEを使用するように変更した後、それは魅力のように機能しています
これが私のdocker-composeについてrabbitmqです。$ {Host}は、docker-compose.ymlと同じフォルダーにある.envファイルに設定された値に置き換えられます。
rabbitmq:
image: rabbitmq:3-management
ports:
- "15672:15672"
- "25672:25672"
- "5672:5672"
- "4369:4369"
environment:
- RABBITMQ_ERLANG_COOKIE='takeMyCookies'
hostname: "${Host}"
クッキーの値を見てください
root@prod-03:/# cat ~/.erlang.cookie
'takeMyCookies'
root@prod-03:/# cat /var/lib/rabbitmq/.erlang.cookie
'takeMyCookies'