2017-12-11 1 views
0

Ich versuche, fügen Sie ein rabbitmq Benutzer hinzufügen, wenn ich einen Docker Container von meinem Bild laufen, aber es beschwert sich, dass der Knoten ist nach unten:Kann kein rabbitmq Benutzer in Docker Datei

Error: unable to connect to node [email protected]: nodedown 

DIAGNOSTICS 
=========== 

attempted to contact: [[email protected]] 

[email protected]: 
    * connected to epmd (port 4369) on 3af546685019 
    * epmd reports: node 'rabbit' not running at all 
        no other nodes on 3af546685019 
    * suggestion: start the node 

current node details: 
- node name: '[email protected]' 
- home dir: /var/lib/rabbitmq 
- cookie hash: pgr3C5mfbuw86BKnW7cJpw== 

Error: unable to connect to node [email protected]: nodedown 

hier ist mein Dockerfile:

FROM rabbitmq:3.6.14 

ADD rabbitmq_users.sh /usr/lib/rabbitmq/bin 
WORKDIR /usr/lib/rabbitmq/bin 
RUN rabbitmq-plugins enable --offline rabbitmq_management 
ENTRYPOINT ["rabbitmq_users.sh"] 

EXPOSE 4369 25672 5672 15672 

und rabbitmq_users.sh: erste führt

#!/bin/sh 

echo "Creating a user..." 
sleep 10 
rabbitmqctl add_user rmquser rmquser 2>/dev/null 
rabbitmqctl set_user_tags rmquser administrator 
rabbitmqctl set_permissions -p/rmquser ".*" ".*" ".*" 

sieht aus wie es rabbitmq_users.sh vor rab läuft bitmq-server aus dem rabbitmq: 3.6.14 image ich erben von, weil ich keine logs sehen kann, die beweisen, dass rabbitmq server gestartet ist. Wenn ich beispielsweise keine Benutzer erstelle, die dieses ENTRYPOINT-Skript deaktivieren, startet der Server und es funktioniert einwandfrei.

Kann mir jemand helfen, dies zu lösen?

Antwort

0

Die rabbitmq image hat bereits einen Einstiegspunkt definiert als ENTRYPOINT ["docker-entrypoint.sh"]. Wenn Sie Ihren Einstiegspunkt definieren, überschreiben Sie den im Basisbild definierten. Daher wird rabbitmq nicht starten. Was Sie tun müssen, ist „anhängen“ Ihre Benutzer-Skript:

FROM rabbitmq:3.6.14 

ADD rabbitmq_users.sh /usr/lib/rabbitmq/bin 
WORKDIR /usr/lib/rabbitmq/bin 
RUN rabbitmq-plugins enable --offline rabbitmq_management 
ENTRYPOINT ["./usr/local/bin/docker-entrypoint.sh rabbitmq-server && ./rabbitmq_users.sh"] 

EXPOSE 4369 25672 5672 15672 
+0

Danke. Ich werde das versuchen und überprüfen, wie es geht ... – Shendor

+0

das ist, was ich erhalte, wenn ich den Container ausführen: "docker: Fehler Antwort vom Daemon: OCI Runtime erstellen fehlgeschlagen: container_linux.go: 295: startender Container-Prozess verursacht" exec : \ "docker-entrypoint.sh rabbitmq-server && rabbitmq_users.sh \": ausführbare Datei nicht in $ PATH gefunden ": unbekannt" – Shendor

+0

aktualisiert Dockerfile. Können Sie es erneut versuchen? – yamenk

0

Ich konnte es durch die Einstellung meiner rabbitmq_users.sh wie dies funktioniert:

#!/bin/sh 

# Create Rabbitmq user 
(rabbitmqctl add_user rmquser rmquser 2>/dev/null ; \ 
rabbitmqctl set_user_tags rmquser administrator ; \ 
rabbitmqctl set_permissions -p/rmquser ".*" ".*" ".*" ; \ 
echo "User 'rmquser' has been created") & rabbitmq-server 

und verwendet CMD statt ENTRYPOINT, wo ich mein Skript zur Verfügung gestellt:

... 
CMD ["rabbitmq_users.sh"]