Esecuzione di Discourse con pg_bouncer e un DB separato

Sto cercando di configurare la nostra istanza di Discourse per connettersi a un database Postgres separato ospitato su Azure (configurato come descritto qui) tramite pg_bouncer, ma sto riscontrando problemi.

Il nostro Discourse è ospitato su una VM in Azure. Ho installato e configurato pg_bouncer sulla VM e riesco a verificare che posso connettermi al database ospitato dalla VM tramite:

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

Nel mio file app.yml, ho modificato l’hostname del database per usare 127.0.0.1:

DISCOURSE_DB_HOST: [era hostname, ho provato 127.0.0.1]

Quando ricompilo l’app ricevo il seguente errore:

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?

L’unica cosa che mi viene in mente che sia diversa tra il modo in cui mi connetto tramite psql e la configurazione del mio app.yml è che in app.yml è specificata una password che non è necessaria in psql perché è configurata nella userlist di pg_bouncer.

Qualsiasi aiuto sarebbe apprezzato.

1 Mi Piace

Credo che dovrai utilizzare un IP a cui il contenitore può accedere. Ha il proprio localhost, credo.

3 Mi Piace

Oh, certo! Usando il mio indirizzo 10.x.x.x funziona perfettamente.

Ora, questa potrebbe non essere la soluzione migliore, quindi se esiste un metodo preferito per accedere all’host dal contenitore Docker di Discourse, sono tutto orecchi.

Grazie!

1 Mi Piace