2017-08-03 2 views
1

Mein Ziel ist es, rabbitmq mit SSL-Unterstützung, die zuvor unter Verwendung rabbitmq.config Datei, die im Host /etc/rabbitmq Pfad befindet erreicht wurde.Konfigurieren ssl in rabbitmq.config mit Rabbitmq Docker Bild

Jetzt möchte ich andere rabbitmq Benutzer und Passwort als Standardeinstellungen guestguest konfigurieren können.

Ich verwende rabbitmq Docker Bild mit folgenden Docker-compose Konfiguration:

version: '2' 
services: 
    rabbitmq: 
     build: ./rabbitmq 
     ports: 
      - "8181:8181" 
     expose: 
      - "15672" 
      - "8181" 
     volumes: 
      - /etc/rabbitmq:/etc/rabbitmq 

     environment: 
      RABBITMQ_DEFAULT_USER: user123 
      RABBITMQ_DEFAULT_PASS: 1234 

RabbitMQ Config:

[{rabbit, 
    [ 
    {loopback_users, []}, 
    {heartbeat,0}, 
    {ssl_listeners, [8181]}, 
    {ssl_options, [{cacertfile, "/etc/rabbitmq/ca/cacert.pem"}, 
        {certfile, "/etc/rabbitmq/server/cert.pem"}, 
        {keyfile, "/etc/rabbitmq/server/key.pem"}, 
        {verify,verify_none}, 
        {fail_if_no_peer_cert,false}]} 
    ]} 
]. 

RabbitMQ dockerfile:

from rabbitmq:management 

#and some certificate generating logic 

Ich bemerkte, dass nach dem Hinzufügen environment Abschnitt aktuelle rabbitmq.config Datei mit automatisch generierten Konfiguration möglicherweise durch docker-entrypoint.sh file überschrieben wird.

Für die Erstellung der Konfiguration mithilfe der Zertifikate habe ich Umgebungsvariablen gefunden, die dies tun können (siehe here). jedoch keinen Hinweis gefunden haben ssl_listeners Abschnitt mit seinem Hafen für die Definition, wie unten rabbitmq.config

Meine Frage ist in gesehen: wie kann ich die genaue Konfiguration erstellen, wie unter Verwendung von env Variablen OR erwähnt, wie kann ich bleibe bei meiner rabbitmq.config Definition Rabbitmq mit neuen Benutzer und Passwort auf eine dynamische Art und Weise (vielleicht Templating die Konfigurationsdatei)?

Antwort

0

Versuchen Sie, diese

version: '2' 
services: 
    rabbitmq: 
     build: ./rabbitmq 
     ports: 
      - "8181:8181" 
     expose: 
      - "15672" 
      - "8181" 
     volumes: 
      - /etc/rabbitmq:/etc/rabbitmq 
     command: rabbitmq-server 
     entrypoint: "" 
     environment: 
      RABBITMQ_DEFAULT_USER: user123 
      RABBITMQ_DEFAULT_PASS: 1234 

Diese die docker-entrpoint außer Kraft gesetzt wird und nur die rabbitmq Server ausgeführt werden. Jetzt setzt die ./docker-entrypoint.sh auch bestimmte Umgebungsvariablen. Was in Ihrem Fall benötigt werden kann. So stellen Sie sicher, dass Sie alles haben, was benötigt wird

+0

Die Ausgabe dieser Lösung entspricht dem Schreiben des Umgebungsabschnitts überhaupt nicht, da der Docker-Einstiegspunkt diese verwendet, um einen Benutzer hinzuzufügen, der sich vom Gaststandardbenutzer unterscheidet. – JavaSa

+0

Dann die nächste Option besteht darin, den docker-entrypoint.sh zu kopieren und ihn je nach Bedarf anzupassen und dann mit einer Datenträgerzuordnung in docker-compose zu teilen, um die Datei beim Laden des Bildes zu überschreiben. Sie können diesen Ansatz wählen, wenn Sie möchten –

+0

Wenn Sie geben Umgebungsvariablen wie in oben genannten Link und nicht überschreiben Eingangspunkt als 'rabbitmq.config 'wird neu erstellt nach Umgebung Abschnitt. – JavaSa

Verwandte Themen