Twój DATABASE_URL
odnosi się do 127.0.0.1
, który jest adapterem pętli zwrotnej (więcej tutaj). Oznacza to „połącz się ze sobą”.
Podczas uruchamiania obu aplikacji (bez użycia platformy Docker) na tym samym hoście, obie są adresowalne na tym samym adapterze (znanym również jako localhost
).
Podczas uruchamiania obu aplikacji w kontenerach nie oba znajdują się na hoście lokalnym, jak wcześniej. Zamiast tego musisz wskazać web
kontener do db
adres IP kontenera w docker0
adapter - który docker-compose
zestawy dla Ciebie.
Zmień:
127.0.0.1
do CONTAINER_NAME
(np. db
)
Przykład:
DATABASE_URL: postgres://username:[email protected]:5432/mydatabase
do
DATABASE_URL: postgres://username:[email protected]:5432/mydatabase
Działa to dzięki linkom Dockera:web
kontener zawiera plik (/etc/hosts
) z db
wpis wskazujący adres IP, który db
pojemnik jest włączony. Jest to pierwsze miejsce, w którym system (w tym przypadku kontener) będzie szukał podczas rozwiązywania nazw hostów.