DATABASE_URL . Anda mengacu pada 127.0.0.1 , yang merupakan adaptor loopback (selengkapnya di sini). Ini berarti "terhubung dengan diri saya sendiri".
Saat menjalankan kedua aplikasi (tanpa menggunakan Docker) pada host yang sama, keduanya dapat dialamatkan pada adaptor yang sama (juga dikenal sebagai localhost ).
Saat menjalankan kedua aplikasi dalam wadah, keduanya tidak berada di localhost seperti sebelumnya. Sebagai gantinya, Anda perlu mengarahkan web wadah ke db alamat IP container di docker0 adaptor - yang docker-compose set untuk Anda.
Ubah:
127.0.0.1 ke CONTAINER_NAME (mis. db )
Contoh:
DATABASE_URL: postgres://username:example@sqldat.com:5432/mydatabase
untuk
DATABASE_URL: postgres://username:example@sqldat.com:5432/mydatabase
Ini berfungsi berkat tautan Docker:web wadah memiliki file (/etc/hosts ) dengan db entri menunjuk ke IP yang db wadah aktif. Ini adalah tempat pertama yang akan dilihat oleh sistem (dalam hal ini, wadah) ketika mencoba menyelesaikan nama host.