Executando Discourse com pg_bouncer e um banco de dados separado

Estou tentando configurar nossa instância do Discourse para se conectar a um banco de dados Postgres separado hospedado no Azure (configurado conforme descrito aqui) através do pg_bouncer, e estou enfrentando problemas.

Nosso Discourse está hospedado em uma VM no Azure. Tenho o pg_bouncer instalado e configurado nela, e consigo verificar que posso conectar ao banco de dados hospedado a partir da VM usando:

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

No meu arquivo app.yml, alterei o uso do hostname do banco de dados para 127.0.0.1:

DISCOURSE_DB_HOST: [era hostname, tentei 127.0.0.1]

Ao reconstruir a aplicação, recebo o seguinte erro:

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?

A única coisa que consigo pensar que é diferente entre como estou me conectando via psql e a configuração do meu app.yml é que há uma senha especificada no app.yml que não é necessária no psql, pois está configurada na userlist do pg_bouncer.

Qualquer ajuda será apreciada.

1 curtida

I believe that you’ll need to use an ip that the container can access. It has its own local host, I believe

3 curtidas

Oh duh! Using my 10.x.x.x address it works just fine.

Now, this might not be the best solution, so if there’s any preferred way to access the host from the Discourse docker container I’m all ears.

Thanks!

1 curtida