Ich habe ein Problem, bei dem der Benutzer user1
nicht in dem Container gespeichert ist, den ich mit der folgenden Docker-Datei erstellt habe. Was ist der Grund dafür? Ist dies ein RabbitMQ-spezifisches Problem? z.B. Ich muss explizit angeben, dass ein Benutzer persistent sein muss
Ich weiß, es ist eine alte Frage, aber ich habe heute stundenlang mit diesem Problem gekämpft und es schließlich für mich gelöst: Das Problem scheint darin zu liegen, dass sich der Standard-Hostname bei jedem neuen Container mit Docker ändert und RabbitMQ die Konfiguration tatsächlich an den Hostnamen bindet.
Ich setze die Variable NODENAME in /etc/rabbitmq/rabbitmq-env.conf, bevor ich den Benutzer einrichte:
%Vor%und jetzt funktioniert es.
Ich hoffe, es kann helfen.
BEARBEITEN:
Hier ist eine funktionierende Dockerfile (Kopieren einer rabbitmq-env.conf-Datei in den Container):
%Vor%Meine rabbitmq-env.conf -Datei:
%Vor%Mein rabbitmq-setup.sh :
%Vor%Für das, was es wert ist, wird etwas Ähnliches in dieser Dockerdatei gemacht, aber ich kann halte es auch nicht:
%Vor%Da viele Leute immer noch dieses Problem haben (einschließlich mir), was ich getan habe, war:
Kopieren Sie unter building das RabbitMQ-Datenbankverzeichnis unter / var / lib / rabbitmq / mnesia / rabbit \ @ $ (hostname) nach der Konfiguration aller Benutzer nach / root (alles in / root bleibt bestehen).
Bei runtime kopieren Sie das Datenbank-Verzeichnis zurück von / root nach / var / lib / rabbitmq / mnesia.
Einzige Nachteile: Änderungen an der Datenbank in RabbitMQ werden zur Laufzeit zurückgesetzt. Ich habe jedoch keine andere Möglichkeit gefunden, dies mit docker-compose zu tun.
Configure.sh (als RUN-Befehl in Dockerfile):
%Vor%Runtime.sh (als Einstiegspunkt in Dockerfile):
%Vor%