RabbitMQ in Docker - die Benutzererstellung wurde nicht beibehalten

9

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

%Vor%     
lolski 06.11.2014, 04:46
quelle

4 Antworten

14

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%     
Ben 22.05.2015 20:13
quelle
0

Ich mache etwas ähnliches und es bleibt bestehen:

%Vor%

Sind Sie sicher, dass der Erstellungsprozess überhaupt stattfindet? Die Betten und Subshells machen es nicht offensichtlich.

    
seanmcl 06.11.2014 11:38
quelle
0

Für das, was es wert ist, wird etwas Ähnliches in dieser Dockerdatei gemacht, aber ich kann halte es auch nicht:

%Vor%     
Filipe Correia 12.03.2015 14:17
quelle
0

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%     
Thijs B. 02.11.2017 12:41
quelle

Tags und Links