Saya mengalami masalah yang sama tetapi dengan layanan lain (bukan MongoDB). Saya tidak yakin apa yang saya lakukan salah tetapi ini adalah bagaimana saya bisa menyelesaikannya :
import os
import mongoengine
MONGODB_HOST = os.environ.get('DB2_PORT_27017_TCP_ADDR', '127.0.0.1')
mongoengine.connect(host=MONGODB_HOST)
- Dengan
DB2
menjadi nama layanan Anda di docker-compose.yml 27017
menjadi pelabuhan layanan terbuka.- Selengkapnya tentang variabel lingkungan penulisan buruh pelabuhan
- Saya akan memasukkannya ke dalam file pengaturan saya. Tetapi Anda bebas meletakkannya di mana pun menurut Anda sesuai, tergantung pada arsitektur proyek Anda
PERBARUI
Sekarang container docker-compose dapat dijangkau oleh layanan lain menggunakan nama host yang mirip dengan alias mereka. dokumentasi tautan :
Dan dengan begitu Anda dapat terhubung ke MongoDB seperti ini:
import mongoengine
mongoengine.connect(host="db2")