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:example@sqldat.com:5432/mydatabase
do
DATABASE_URL: postgres://username:example@sqldat.com: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ů.