我已在下面设置了一个泊坞窗堆栈(参见docker-compose.yml)。
它有2项服务: - 在一个(或多个)容器中运行的nodejs(环回)服务。 - 在另一个容器中运行的mongodb。
我在节点应用程序中使用什么主机以允许它连接到另一个容器中的mongodb(当前在同一节点上,但如果我设置了一个群,则可以在不同的节点上)。
我尝试过网桥,网络,托管IP等。但没有运气。
注意:我将主机传递到nodejs app,其中包含环境变量" MONGODB_SERVICE_SERVICE_HOST"。
提前致谢!!
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:
答案 0 :(得分:2)
webnet
不是主持人。这是mongo-database
因此,将webnet
更改为mongo-database
。
ENV MONGO_URL "mongodb://containerName:27017/dbName"
要检查mongo-database通信,请进入nodejs容器,然后尝试ping mongo-database
:
ping mongo-database
如果有效,您就知道您的服务器可以与您的mongo实例通信。