sql >> Base de Datos >  >> RDS >> PostgreSQL

ECONNREFUSED para Postgres en nodeJS con acopladores

Su DATABASE_URL se refiere a 127.0.0.1 , que es el adaptador de bucle invertido (más aquí). Esto significa "conectar conmigo mismo".

Cuando se ejecutan ambas aplicaciones (sin usar Docker) en el mismo host, ambas son direccionables en el mismo adaptador (también conocido como localhost). ).

Cuando se ejecutan ambas aplicaciones en contenedores, no están ambas en localhost como antes. En su lugar, debe señalar la web contenedor a la db dirección IP del contenedor en docker0 adaptador - que docker-compose conjuntos para usted.

Cambiar:

127.0.0.1 a CONTAINER_NAME (por ejemplo, db )

Ejemplo:

DATABASE_URL: postgres://username:[email protected]:5432/mydatabase

a

DATABASE_URL: postgres://username:[email protected]:5432/mydatabase

Esto funciona gracias a los enlaces de Docker:la web contenedor tiene un archivo (/etc/hosts ) con una db entrada que apunta a la IP que el db el contenedor está encendido. Este es el primer lugar donde un sistema (en este caso, el contenedor) buscará cuando intente resolver nombres de host.