Vaše DATABASE_URL
odkazuje na 127.0.0.1
, což je adaptér zpětné smyčky (více zde). To znamená „připojit se k sobě“.
Při spuštění obou aplikací (bez použití Dockeru) na stejném hostiteli jsou obě adresovatelné na stejném adaptéru (také známém jako localhost
).
Při spuštění obou aplikací v kontejnerech nejsou obě na localhost jako dříve. Místo toho musíte ukazovat web
kontejneru do db
IP adresa kontejneru na docker0
adaptér - který docker-compose
sady pro vás.
Změna:
127.0.0.1
do CONTAINER_NAME
(např. db
)
Příklad:
DATABASE_URL: postgres://username:[email protected]:5432/mydatabase
do
DATABASE_URL: postgres://username:[email protected]:5432/mydatabase
Funguje to díky odkazům Docker:web
kontejner má soubor (/etc/hosts
) s db
vstup ukazující na IP adresu db
kontejner je zapnutý. Toto je první místo, kam se systém (v tomto případě kontejner) podívá při pokusu o vyřešení názvů hostitelů.