Betrieb von Discourse mit pg_bouncer und einer separaten DB

Ich versuche, unsere Discourse-Instanz so einzurichten, dass sie eine separate, auf Azure gehostete Postgres-Datenbank über pg_bouncer verbindet (wie hier beschrieben), und habe dabei Probleme.

Unsere Discourse-Instanz läuft auf einer VM in Azure. Ich habe pg_bouncer darauf installiert und konfiguriert und kann bestätigen, dass ich von der VM aus eine Verbindung zur gehosteten Datenbank herstellen kann, indem ich folgenden Befehl verwende:

psql -h 127.0.0.1 -p 5432 -U [username] -d [database]

In meiner app.yml habe ich den Datenbankhostnamen durch 127.0.0.1 ersetzt:

DISCOURSE_DB_HOST: [war Hostname, habe 127.0.0.1 versucht]

Beim erneuten Erstellen der App erhalte ich folgenden Fehler:

I, [2020-09-18T20:48:51.653890 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
rake aborted!
PG::ConnectionBad: could not connect to server: Connection refused
	Is the server running on host "127.0.0.1" and accepting
	TCP/IP connections on port 5432?

Der einzige Unterschied, der mir einfällt, zwischen meiner Verbindung über psql und der Konfiguration in meiner app.yml ist, dass in der app.yml ein Passwort angegeben ist, das bei psql nicht erforderlich ist, da es in der pg_bouncer userlist hinterlegt ist.

Jede Hilfe wäre willkommen.

1 „Gefällt mir“

Ich glaube, dass Sie eine IP-Adresse verwenden müssen, auf die der Container zugreifen kann. Es hat, glaube ich, seinen eigenen lokalen Host.

3 „Gefällt mir“

Oh, klar! Mit meiner 10.x.x.x-Adresse funktioniert es einwandfrei.

Das ist vielleicht nicht die beste Lösung. Falls es eine bevorzugte Methode gibt, um vom Discourse-Docker-Container auf den Host zuzugreifen, bin ich gespannt.

Danke!

1 „Gefällt mir“