Я пытаюсь настроить кластер rabbitmq с помощью службы контейнеров aws. мне нужно /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-alpine.
Я сталкиваюсь с этим потоком при поиске очень похожей проблемы, но мой env var - ERLANG_COOKIE, после того, как я перешел на RABBITMQ_ERLANG_COOKIE, он работает как шарм
А вот и мой docker-compose о rabbitmq, $ {HOST} будет заменен значением, установленным в файле .env, который находится в той же папке, что и docker-compose.yml.
rabbitmq:
image: rabbitmq:3-management
ports:
- "15672:15672"
- "25672:25672"
- "5672:5672"
- "4369:4369"
environment:
- RABBITMQ_ERLANG_COOKIE='takeMyCookies'
hostname: "${HOST}"
Взгляните на значение cookie
root@prod-03:/# cat ~/.erlang.cookie
'takeMyCookies'
root@prod-03:/# cat /var/lib/rabbitmq/.erlang.cookie
'takeMyCookies'