Joe*_*Joe 2 mongodb node.js docker docker-compose
这是我的docker-compose-file:
version: "2"
services:
rest-api:
build: .
ports:
- "3007:3007"
links:
- mongo
mongo:
image: mongo
volumes:
- /data/mongodb/db:/data/db
ports:
- "27017:27017"
Run Code Online (Sandbox Code Playgroud)
这是我的Dockerfile:
FROM mhart/alpine-node:latest
RUN rm -rf /tmp/node_modules
ADD package.json /tmp/package.json
RUN cd /tmp && npm install
RUN mkdir -p /opt/app && cp -a /tmp/node_modules /opt/app/
WORKDIR /opt/app
ADD . /opt/app
EXPOSE 3007
CMD ["node", "index.js"]
Run Code Online (Sandbox Code Playgroud)
当我运行图像时,节点无法连接到mongo:
MongoError: failed to connect to server [localhost:27017] on first connect
Run Code Online (Sandbox Code Playgroud)
有什么不对?我该怎么调试呢?
更新:
在我的节点应用程序中,我有:
let connection = mongoose.connect('mongodb://localhost/myapp');
Run Code Online (Sandbox Code Playgroud)
Node正在尝试连接到Mongo localhost,但由于它没有与Node在同一个容器中运行,因此失败了.相反,它在不同的容器中运行,即在不同的主机上运行.
您的应用程序中可能有这样的行:
var url = 'mongodb://localhost:27017/myproject';
Run Code Online (Sandbox Code Playgroud)
它定义了MongoDB的位置.您需要更改localhost为实际的主机,在您的情况下mongo.
| 归档时间: |
|
| 查看次数: |
830 次 |
| 最近记录: |