以下にdockerスタック(docker-compose.ymlを参照)をセットアップしました。
2つのサービスがあります。-1つ(または複数)のコンテナーで実行されるnodejs(ループバック)サービス。-別のコンテナで実行されているmongodb。
ノードアプリケーションでどのホストを使用して、別のコンテナー内のmongodbに接続できるようにしますか(現在は同じノード上にありますが、群れをセットアップした場合は別のノード上にある可能性があります)。
ブリッジ、ウェブネット、ホストIPなどを試しましたが、うまくいきませんでした。
注:環境変数「MONGODB_SERVICE_SERVICE_HOST」を使用して、ホストをnodejsアプリに渡します。
前もって感謝します!!
version: "3"
services:
web:
image: myaccount/loopback-app:latest
deploy:
replicas: 2
restart_policy:
condition: on-failure
ports:
- "8060:3000"
environment:
MONGODB_SERVICE_SERVICE_HOST: "webnet"
depends_on:
- mongo
networks:
- webnet
mongo-database:
image: mongo
ports:
- "27017:27017"
volumes:
- "/Users/jason/workspace/mongodb/db:/data/db"
deploy:
placement:
constraints: [node.role == manager]
networks:
- webnet
networks:
webnet:
webnet
ホストではありません。これはmongo-database
です。
したがって、に変更webnet
しmongo-database
ます。
ENV MONGO_URL "mongodb://containerName:27017/dbName"
mongo-database通信を確認するには、nodejsコンテナーに入り、pingを実行してみてくださいmongo-database
。
ping mongo-database
それが機能する場合は、サーバーがmongoインスタンスと通信できることがわかります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加