PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

ECONNREFUSED para Postgres no nodeJS com janelas de encaixe


Seu DATABASE_URL refere-se a 127.0.0.1 , que é o adaptador de loopback (mais aqui). Isso significa "conectar-se a mim mesmo".

Ao executar os dois aplicativos (sem usar o Docker) no mesmo host, ambos são endereçáveis ​​no mesmo adaptador (também conhecido como localhost ).

Ao executar os dois aplicativos em contêineres, eles não estão no host local como antes. Em vez disso, você precisa apontar a web contêiner para o db o endereço IP do contêiner no docker0 adaptador - que docker-compose conjuntos para você.

Mudar:

127.0.0.1 para CONTAINER_NAME (por exemplo, db )

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

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

Isso funciona graças aos links do Docker:a web container tem um arquivo (/etc/hosts ) com um db entrada apontando para o IP que o db recipiente está ligado. Este é o primeiro lugar que um sistema (neste caso, o contêiner) procurará ao tentar resolver nomes de host.