gpt4 book ai didi

node.js - 将一个Docker容器中的nodejs应用连接到Docker Swarm上另一个容器中的mongodb

转载 作者:行者123 更新时间:2023-12-02 21:21:01 25 4
gpt4 key购买 nike

我在下面设置了一个docker stack(请参阅docker-compose.yml)。

它有2个服务:
-在一个(或多个)容器中运行的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实例通信。

关于node.js - 将一个Docker容器中的nodejs应用连接到Docker Swarm上另一个容器中的mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45634796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com