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