Docker Mongodb:MongoNetworkError:连接ECONNREFUSED 192.168.96.2:27017

时间:2019-02-14 13:09:17

标签: mongodb docker mongoose docker-compose

当我在本地运行docker-compose时,我的应用程序运行正常。但是当我将其推送到Web服务器上时,出现以下错误:

connection error : MongoNetworkError: failed to connect to server 
[mongo:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 
192.168.96.2:27017]

我不知道发生了什么事。

这是我的docker文件:

FROM node:10

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

COPY . . 

EXPOSE 3001

CMD ["node", "server"]

我的docker-compose文件:

version: '3'

services: 
  app:
    depends_on: 
      - mongo
    container_name: data-foot-api-container
    restart: always
    build: .
    ports: 
      - '80:3001'
  mongo: 
    image: mongo
    container_name: mongodb
    ports:
      - '27017:27017'
    volumes:
      - /data/db:/data/db
volumes:
  data-football:

如果有人对它的来源有所了解,我将不胜感激

1 个答案:

答案 0 :(得分:0)

谢谢大家对我的帮助。

确实是由于Node容器在mongo容器之前已经准备就绪并且正在运行。 因此,Node尝试到达mongo,但mongo尚未启动。

我找到了一种方法来强迫docker等待mongo准备好,然后再在此处构建节点容器:https://dev.to/hugodias/wait-for-mongodb-to-start-on-docker-3h8b

可能还有其他方法,如果有人知道其他方法或更好的方法,请发表评论。