У меня возникают проблемы с сохранением учетных записей пользователей RabbitMQ, настроенных через панель управления. После перезапуска они исчезают, и я считаю, что это связано с созданием новых баз данных mnesia при каждом перезапуске.
Я попытался связать том docker с /var/lib/rabbitmq
:
version: '3.1'
services:
rabbitmq:
image: rabbitmq:management-alpine
volumes:
- rabbitdata1:/var/lib/rabbitmq/
ports:
- "5672:5672"
- "15672:15672"
volumes:
rabbitdata1:
driver: local
Когда я смотрю на содержимое смонтированного каталога, я получаю:
$ docker exec -ti local_rabbitmq_1 /bin/bash
bash-5.0# ls /var/lib/rabbitmq/mnesia/
rabbit@0eceaaa217c8 rabbit@0eceaaa217c8-plugins-expand
rabbit@0eceaaa217c8-feature_flags rabbit@0eceaaa217c8.pid
Но при перезапуске службы создается впечатление, что создается новый экземпляр для нового PID, и все изменения lost:
$ docker exec -ti local_rabbitmq_1 /bin/bash
bash-5.0# ls /var/lib/rabbitmq/mnesia/
rabbit@0eceaaa217c8 rabbit@ac5afbef3c81
rabbit@0eceaaa217c8-feature_flags rabbit@ac5afbef3c81-feature_flags
rabbit@0eceaaa217c8-plugins-expand rabbit@ac5afbef3c81-plugins-expand
rabbit@0eceaaa217c8.pid rabbit@ac5afbef3c81.pid
Я также попытался установить переменную окружения RABBITMQ_NODENAME
, чтобы вместо вышеприведенных rabbit@0eceaaa217c8
и rabbit@ac5afbef3c81
я получил постоянную строку для .pid
и mnesia каталоги, но тогда RabbitMQ даже не перезапустится:
2020-04-10 10:41:34.657 [info] <0.309.0> Running boot step database defined by app rabbit
2020-04-10 10:41:34.685 [error] <0.308.0> CRASH REPORT Process <0.308.0> with 0 neighbours exited with reason: {{failed_to_cluster_with,[foo@190e6343c238],"Mnesia could not connect to any nodes."},{rabbit,start,[normal,[]]}} in application_master:init/4 line 138
2020-04-10 10:41:34.686 [info] <0.44.0> Application rabbit exited with reason: {{failed_to_cluster_with,[foo@190e6343c238],"Mnesia could not connect to any nodes."},{rabbit,start,[normal,[]]}}
{"Kernel pid terminated",application_controller,"{application_start_failure,rabbit,{{failed_to_cluster_with,[foo@190e6343c238],\"Mnesia could not connect to any nodes.\"},{rabbit,start,[normal,[]]}}}"}
Kernel pid terminated (application_controller) ({application_start_failure,rabbit,{{failed_to_cluster_with,[foo@190e6343c238],"Mnesia could not connect to any nodes."},{rabbit,start,[normal,[]]}}})
Есть ли другой способ сохранить изменения между перезапусками сервиса RabbitMQ docker?
Может быть, есть какой-нибудь другой каталог, который мог бы справиться?
Я проверил наличие других потенциальных кандидатов, но нашел только /etc/rabbitmq/
и /opt/rabbitmq/
, которые выглядят как каталоги конфигурации и установки соответственно:
bash-5.0# find . -name 'rabbitmq'
./etc/rabbitmq
./var/log/rabbitmq
./var/lib/rabbitmq
./opt/rabbitmq
./opt/rabbitmq/etc/rabbitmq