Narazil jsem na podobný problém, ale s jinou službou (ne MongoDB). Nejsem si jistý, co dělám špatně, ale takhle bych to mohl vyřešit:
import os
import mongoengine
MONGODB_HOST = os.environ.get('DB2_PORT_27017_TCP_ADDR', '127.0.0.1')
mongoengine.connect(host=MONGODB_HOST)
- S
DB2
což je název vaší služby v docker-compose.yml 27017
být přístavem exponované služby.- Další informace o proměnných prostředí docker-compose
- Umístil bych to do souboru nastavení. Můžete jej však umístit kamkoli, kde to považujete za vhodné v závislosti na architektuře vašeho projektu
AKTUALIZACE
Nyní jsou kontejnery docker-compose dostupné pro jiné služby pomocí názvu hostitele podobného jejich aliasu. odkazová dokumentace :
A tímto způsobem se můžete připojit k MongoDB takto:
import mongoengine
mongoengine.connect(host="db2")