PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

ECONNREFUSED per Postgres su nodeJS con finestre mobili

Il tuo DATABASE_URL fa riferimento a 127.0.0.1 , che è l'adattatore di loopback (più qui). Questo significa "connettersi a me stesso".

Quando si eseguono entrambe le applicazioni (senza utilizzare Docker) sullo stesso host, sono entrambe indirizzabili sullo stesso adattatore (noto anche come localhost ).

Quando si eseguono entrambe le applicazioni nei contenitori, non si trovano entrambe su localhost come prima. Invece devi puntare il web contenitore nel db l'indirizzo IP del contenitore nella docker0 adapter - che docker-compose imposta per te.

Modifica:

127.0.0.1 a CONTAINER_NAME (es. db )

Esempio:

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

a

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

Funziona grazie ai collegamenti Docker:il web contenitore ha un file (/etc/hosts ) con un db voce che punta all'IP che è il db il contenitore è acceso. Questo è il primo posto in cui un sistema (in questo caso, il container) cercherà quando tenterà di risolvere i nomi host.