Phi*_*ann 1 mongoose mongodb express docker docker-compose
我正在尝试使用node和mongo运行一个简单的docker设置:
Dockerfile:
FROM node:8.9.4-alpine
RUN mkdir /app
WORKDIR /app
COPY package.json /app/
COPY package-lock.json /app/
RUN npm install
ADD . /app/
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml:
version: '3'
services:
db:
image: 'mongo'
ports:
- "27017:27017"
api:
build: .
restart: always
command: sh -c "npm install && npm run start"
volumes:
- .:/app
ports:
- "3000:3000"
environment:
PORT: 3000
depends_on:
- db
Run Code Online (Sandbox Code Playgroud)
现在在我的app.js中,我像这样连接到mongo:
mongoose.connect('mongodb://localhost:27017')
.catch(err => {
console.log(err)
})
Run Code Online (Sandbox Code Playgroud)
但是我得到了 failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]
mongo容器似乎可以启动并可以正常运行waiting for connections on port 27017。
我的设置有什么问题?我也试过换出localhost的mongo连接时,却没有任何效果。
我没有意识到我将数据库容器命名为db而不是mongo,所以我要做的就是在app.js中切换该名称:
mongoose.connect('mongodb://db:27017')
.catch(err => {
console.log(err)
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1385 次 |
| 最近记录: |