Ik kwam een soortgelijk probleem tegen, maar met een andere service (niet MongoDB). Ik weet niet zeker wat ik verkeerd doe, maar dit is hoe ik het kan oplossen:
import os
import mongoengine
MONGODB_HOST = os.environ.get('DB2_PORT_27017_TCP_ADDR', '127.0.0.1')
mongoengine.connect(host=MONGODB_HOST)
- Met
DB2
zijnde de naam van uw service in docker-compose.yml 27017
zijnde de haven van de blootgestelde dienst.- Meer over docker-compose omgevingsvariabelen
- Ik zou dat in mijn instellingenbestand zetten. Maar u bent vrij om het te plaatsen waar u denkt dat het geschikt is, afhankelijk van uw projectarchitectuur
UPDATE
Docker-compose containers zijn nu bereikbaar voor andere services die een hostnaam gebruiken die vergelijkbaar is met hun alias. linkdocumentatie :
En op die manier kun je als volgt verbinding maken met MongoDB:
import mongoengine
mongoengine.connect(host="db2")