sql >> Databasteknik >  >> RDS >> PostgreSQL

ECONNREFUSED för Postgres på nodeJS med dockare

Din DATABASE_URL hänvisar till 127.0.0.1 , som är loopback-adaptern (mer här). Detta betyder "anslut till mig själv".

När båda applikationerna körs (utan att använda Docker) på samma värd, är de båda adresserbara på samma adapter (även känd som localhost ).

När båda applikationerna körs i behållare är de inte båda på localhost som tidigare. Istället måste du peka på web container till db containerns IP-adress på docker0 adapter - som docker-compose ställer åt dig.

Ändra:

127.0.0.1 till CONTAINER_NAME (t.ex. db )

Exempel:

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

till

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

Detta fungerar tack vare Docker-länkar:web behållaren har en fil (/etc/hosts ) med en db post som pekar på den IP som db behållaren är på. Detta är det första stället ett system (i det här fallet behållaren) kommer att titta på när det försöker lösa värdnamn.



  1. Optimera Microsoft Access med SQL Server IndyPass – 21/5/19

  2. Spring Boot CRUD Exempel med MySQL

  3. Postgres-fel vid infogning - ERROR:ogiltig bytesekvens för kodning av UTF8:0x00

  4. Hur hittar du radantalet för alla dina bord i Postgres