同様の問題が発生しましたが、別のサービス(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-composeコンテナーは、エイリアスと同様のホスト名を使用して他のサービスから到達可能になります。 リンクドキュメント :
そうすれば、次のようにMongoDBに接続できます:
import mongoengine
mongoengine.connect(host="db2")