Exécuter Discourse avec pg_bouncer et une base de données séparée

Je tente de configurer notre instance Discourse pour qu’elle se connecte à une base de données Postgres distincte hébergée sur Azure (configurée comme décrit ici) via pg_bouncer, mais je rencontre des problèmes.

Notre Discourse est hébergé sur une machine virtuelle dans Azure. J’ai installé et configuré pg_bouncer sur celle-ci, et je peux vérifier que je peux me connecter à la base de données hébergée depuis la VM via :

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

Dans mon fichier app.yml, j’ai remplacé le nom d’hôte de la base de données par 127.0.0.1 :

DISCOURSE_DB_HOST: [était le nom d'hôte, j'ai essayé 127.0.0.1]

Lors de la reconstruction de l’application, je reçois l’erreur suivante :

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?

La seule différence à laquelle je peux penser entre ma connexion via psql et la configuration de mon app.yml est qu’un mot de passe est spécifié dans app.yml, alors qu’il n’est pas nécessaire dans psql car il est défini dans la liste des utilisateurs de pg_bouncer.

Toute aide serait appréciée.

1 « J'aime »

Je pense que vous devrez utiliser une adresse IP accessible depuis le conteneur. Il possède son propre hôte local, à mon avis.

3 « J'aime »

Oh, bien sûr ! En utilisant mon adresse 10.x.x.x, cela fonctionne parfaitement.

Maintenant, ce n’est peut-être pas la meilleure solution, donc s’il existe une méthode préférée pour accéder à l’hôte depuis le conteneur Docker de Discourse, je suis tout ouïe.

Merci !

1 « J'aime »