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 guest
guest
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)?
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
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 –
Wenn Sie geben Umgebungsvariablen wie in oben genannten Link und nicht überschreiben Eingangspunkt als 'rabbitmq.config 'wird neu erstellt nach Umgebung Abschnitt. – JavaSa