Ejecutando Discourse con pg_bouncer y una DB separada

Estoy intentando configurar nuestra instancia de Discourse para que se conecte a una base de datos Postgres separada alojada en Azure (configurada como se describe aquí) mediante pg_bouncer, pero estoy teniendo problemas.

Nuestro Discourse está alojado en una máquina virtual en Azure. Tengo pg_bouncer instalado y configurado en ella, y puedo verificar que puedo conectarme a la base de datos alojada desde la VM mediante:

psql -h 127.0.0.1 -p 5432 -U [usuario] -d [base_de_datos]

En mi archivo app.yml, cambié el uso del nombre de host de la base de datos por 127.0.0.1:

DISCOURSE_DB_HOST: [era nombre de host, intenté 127.0.0.1]

Al reconstruir la aplicación, obtengo el siguiente error:

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: no se pudo conectar al servidor: Conexión rechazada
	¿Está el servidor ejecutándose en el host "127.0.0.1" y aceptando
	conexiones TCP/IP en el puerto 5432?

Lo único que se me ocurre que es diferente entre cómo me conecto mediante psql y la configuración de mi app.yml es que en app.yml se especifica una contraseña que no es necesaria en psql porque está configurada en la lista de usuarios de pg_bouncer.

Agradecería cualquier ayuda.

1 me gusta

Creo que necesitarás usar una IP a la que el contenedor pueda acceder. Tiene su propio localhost, creo.

3 Me gusta

¡Oh, claro! Usando mi dirección 10.x.x.x funciona perfectamente.

Ahora, esto podría no ser la mejor solución, así que si hay alguna forma preferida de acceder al host desde el contenedor Docker de Discourse, estoy todo oídos.

¡Gracias!

1 me gusta