我正在尝试对node
我拥有的使用mongodb
实例的应用程序进行 dockerize。我试图指出它,'mongodb://mongo:27018/eugenie_cp'
但它一直在127.0.0.1:27017
我已经关注了这两个可能被标记为重复的问题,但我已经使用了那里的答案:
无法通过 Docker 中的 node.js 连接到 MongoDB
MongoDB 与 Docker “首次连接时无法连接到服务器 [localhost:27017]”
由于以下行,我收到错误,但我无法解决它。
// 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"
我该如何解决这个错误?