Jeg løb ind i et lignende problem, men med en anden tjeneste (ikke MongoDB). Jeg er ikke sikker på, hvad jeg gør forkert, men sådan kunne jeg løse det:
import os
import mongoengine
MONGODB_HOST = os.environ.get('DB2_PORT_27017_TCP_ADDR', '127.0.0.1')
mongoengine.connect(host=MONGODB_HOST)
- Med
DB2
er navnet på din tjeneste i docker-compose.yml 27017
være havnen for den udsatte tjeneste.- Mere om docker-compose miljøvariabler
- Jeg ville sætte det i min indstillingsfil. Men du kan frit placere det, hvor du synes, det er passende afhængigt af din projektarkitektur
OPDATERING
Nu kan docker-compose containere nås af andre tjenester, der bruger et værtsnavn, der ligner deres alias. linkdokumentation :
Og på den måde kan du oprette forbindelse til MongoDB sådan her:
import mongoengine
mongoengine.connect(host="db2")