0
我已經在下面設置了docker stack(請參閱docker-compose.yml)。在一個Docker容器中將nodejs應用連接到另一個Docker容器中的mongodb
它有2個服務: - 在一個(或多個)容器中運行的nodejs(環回)服務。 - 在另一個容器中運行的mongodb。
在我的節點應用程序中使用什麼主機來允許它連接到另一個容器中的mongodb(當前位於同一個節點上,但如果設置swarm可能位於不同的節點上)。
我試過橋,webnet,主機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:
就是這樣。主機是容器名稱。不能更容易或更明顯!謝謝 !! – Jason
mathieu,雖然在本地開發上工作得很好,但是當它在AWS上運行時,節點應用無法連接到mongo數據庫..任何建議我可能會丟失?謝謝 06:59:06 MongoError:第一次連接時無法連接到服務器[mongo-database:27017] [MongoError:connect ECONNREFUSED 10.0.1.2:27017] – Jason