sql >> Database >  >> RDS >> PostgreSQL

ECONNREFUSED voor Postgres op nodeJS met dockers

Uw DATABASE_URL verwijst naar 127.0.0.1 , wat de loopback-adapter is (meer hier). Dit betekent "verbinden met mezelf".

Wanneer beide applicaties (zonder Docker te gebruiken) op dezelfde host worden uitgevoerd, zijn ze beide adresseerbaar op dezelfde adapter (ook bekend als localhost ).

Wanneer beide applicaties in containers worden uitgevoerd, zijn ze niet allebei op localhost zoals voorheen. In plaats daarvan moet je naar het web . wijzen container naar de db het IP-adres van de container op de docker0 adapter - welke docker-compose sets voor u.

Wijzigen:

127.0.0.1 naar CONTAINER_NAME (bijv. db )

Voorbeeld:

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

naar

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

Dit werkt dankzij Docker-links:het web container heeft een bestand (/etc/hosts ) met een db ingang die verwijst naar het IP dat de db container staat aan. Dit is de eerste plaats waar een systeem (in dit geval de container) zal kijken bij het oplossen van hostnamen.



  1. Hoe de Unicode-waarde voor een bepaald teken in SQL Server te retourneren - UNICODE()

  2. Sessietijdzone instellen met spring jdbc oracle

  3. Een externe-sleutelbeperking afdwingen voor kolommen van dezelfde tabel

  4. Excel gebruiken voor uw database? Dit is waarom u moet upgraden om toegang te krijgen