【发布时间】:2019-02-14 13:09:16
【问题描述】:
当我在本地运行 docker-compose 时,我的应用程序运行良好。但是当我将它推送到我的网络服务器上时,我收到以下错误:
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:
如果有人知道它的来源,我将不胜感激
【问题讨论】:
-
你能分享这个命令的输出
docker ps吗? -
顺便说一下,从 dockerfile
CMD ["mongod", "service", "start"]和 docker-compose 文件中的link部分删除无用的 CMD -
您的应用程序端口似乎已为应用程序反转。我假设您希望您的主机端口 3001 指向应用程序容器中的端口 80?应该是 3001:80。
-
@andolsi zied,感谢您的回复,结果如下:e022cee1e87f data-foot-api_app "node server" 47 seconds ago Up 1 seconds 0.0.0.0:80->3001/tcp data- foot-api-container f4f98357ef43 mongo "docker-entrypoint.s…" 48 秒前 Up 2 seconds 0.0.0.0:27017->27017/tcp mongodb
-
@pwaterz 我想在应用程序上线时访问端口 80,我在本地尝试过它并按预期工作:当我访问端口 80 时,它然后指向我的 nodejs 应用程序的端口 3001跨度>
标签: mongodb docker mongoose docker-compose