【发布时间】:2019-10-14 17:29:46
【问题描述】:
我正在尝试对我拥有的使用 mongodb 实例的 node 应用程序进行 dockerize。我试图将其指向'mongodb://mongo:27018/eugenie_cp',但它一直指向127.0.0.1:27017
我已经关注了这两个可能被标记为重复的问题,但我已经使用了那里的答案:
Cannot connect to MongoDB via node.js in Docker
MongoDB on with Docker "failed to connect to server [localhost:27017] on first connect "
由于以下行,我收到了错误,但我无法解决它。
// call express middleware
var express = require('express');
//Initialize the app.
var app = express();
//setting the mongoose options.
var options = {
useMongoClient: true,
server: {
socketOptions: {
socketTimeoutMS: 0,
connectTimeout: 0
}
},
server: {
reconnectTries: 1000
},
replset: {
socketOptions: {
socketTimeoutMS: 0,
connectTimeout: 0
}
}
};
// Mongo instance here.
var mongoose = require('mongoose');
// setting the MongoDb connection URL / string
var mongodb_connection_url = 'mongodb://mongo:27017/eugenie_cp';
// connect to our database
mongoose.connect(mongodb_connection_url, options);
// MongoDb connection error check
var db_check = mongoose.connection;
db_check.on('error', console.error.bind(console, 'MongoDB connection error:'));
我收到以下错误:
app | MongoDB connection error: Error [MongoError]: failed to connect to server [127.0.0.1:27017] on first connect [Error: connect ECONNREFUSED 127.0.0.1:27017
app | at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1126:14) {
app | name: 'MongoError',
app | message: 'connect ECONNREFUSED 127.0.0.1:27017'
app | }]
我的docker-compose.yml:
version: "3"
services:
app:
depends_on:
- mongo
container_name: app
restart: always
build: .
ports:
- "3002:3002"
links:
- mongo
mongo:
container_name: mongo
image: mongo:3.2
volumes:
- ./data:/data/db
ports:
- "27018:27017"
我该如何解决这个错误?
【问题讨论】:
-
该错误与您显示的 node.js 代码不匹配。请检查您是否正在执行正确的代码。
-
@michalk 我已经更新了我的代码
标签: node.js docker docker-compose