J'ai rencontré un problème similaire mais avec un autre service (pas MongoDB). Je ne suis pas sûr de ce que je fais mal mais voici comment je pourrais le résoudre :
import os
import mongoengine
MONGODB_HOST = os.environ.get('DB2_PORT_27017_TCP_ADDR', '127.0.0.1')
mongoengine.connect(host=MONGODB_HOST)
- Avec
DB2
étant le nom de votre service dans docker-compose.yml 27017
étant le port du service exposé.- En savoir plus sur les variables d'environnement docker-compose
- Je mettrais ça dans mon fichier de paramètres. Mais vous êtes libre de le mettre où bon vous semble en fonction de l'architecture de votre projet
MISE À JOUR
Désormais, les conteneurs docker-compose sont accessibles par d'autres services à l'aide d'un nom d'hôte similaire à leur alias. lien documentation :
Et de cette façon, vous pouvez vous connecter à MongoDB comme ceci :
import mongoengine
mongoengine.connect(host="db2")