Назад | Перейти на главную страницу

контейнер докеров rabbitmq .erlang.cookie не устанавливается из переменной env RABBITMQ_ERLANG_COOKIE

Я пытаюсь настроить кластер 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'