Сблъсках се с подобен проблем, но с друга услуга (не MongoDB). Не съм сигурен какво правя погрешно, но ето как мога да го реша:
import os
import mongoengine
MONGODB_HOST = os.environ.get('DB2_PORT_27017_TCP_ADDR', '127.0.0.1')
mongoengine.connect(host=MONGODB_HOST)
- С
DB2
е името на вашата услуга в docker-compose.yml 27017
като пристанището на изложената услуга.- Повече за променливите на средата на docker-compose
- Бих го поставил в моя файл с настройки. Но вие сте свободни да го поставите където сметнете за подходящо в зависимост от архитектурата на вашия проект
АКТУАЛИЗАЦИЯ
Сега контейнерите за съставяне на docker са достъпни от други услуги, използващи име на хост, подобно на техния псевдоним. документация за връзки :
И по този начин можете да се свържете с MongoDB по този начин:
import mongoengine
mongoengine.connect(host="db2")