【发布时间】:2018-08-23 21:53:38
【问题描述】:
我有两个docker-compose.yml 文件。在第一个中,我运行了一个 mongodb 实例:
version: '3'
services:
mongodb:
image: mongo:latest
container_name: "mongodb"
volumes:
- ./data/db:/data/db
ports:
- 27017:27017
在第二个中,我运行我的网络应用程序,我想将它与 mongodb 容器链接:
version: '3'
services:
webapp:
build:
context: .
external_links:
- mongodb
ports:
- 8080:8080
但是,当我运行我的 web 应用程序时,我收到了连接错误。我正在连接到这个 URI:
const DB_URI = 'mongodb://mongodb:27017/mydb';
但我得到MongoNetworkError。我错过了什么?
【问题讨论】:
-
是否要求它们位于不同的 docker compose 文件中?
-
你能在你的 webapp 容器中
ping mongodb吗? -
我发现了错误。这是因为它们位于不同的 docker 网络中。 @Rickkwa 这不是必需的,但我需要在启动 webapp 之前启动并运行 mongodb。如何在同一个 docker-compose 文件中使用这两种服务来实现这一点?
标签: node.js mongodb docker mongoose docker-compose