在容器中运行node-js-app会拒绝与mongodb建立连接



当mongodb容器正在运行并处于最新状态时(docker run-d--name mongodb p 27017:27017 mongo(

这是node-js代码,当在容器上运行时,它可以完美地处理ide并抛出连接错误

未能连接到MONGODBMongooseServerSelectionError:connect ECONNREFUSED 127.0.0.1:27017

mongoose.connect(
// `mongodb://${process.env.MONGODB_USERNAME}:${process.env.MONGODB_PASSWORD}@mongodb:27017/course-goals?authSource=admin`,
// `mongodb://${process.env.MONGODB_USERNAME}:${process.env.MONGODB_PASSWORD}@${process.env.MONGO_DB_URL}:27017/course-goals?authSource=admin`,
`mongodb://localhost:27017/course-goals?authSource=admin`,
{
useNewUrlParser: true,
useUnifiedTopology: true,
},
(err) => {
if (err) {

console.error(err);
} else {

app.listen(80);
}
}
);

I运行服务器的命令docker run --name server -p 80:80 --rm server

node-js-docker文件

FROM node
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
EXPOSE 80
CMD [ "node", "app.js" ]

我需要按照描述运行它,两个单独的容器暴露端口80用于服务器,另一个27017用于mongo。

谢谢各位

我使用了错误的地址,而不是使用"localhost";我们应该使用";host.doker.internal";当说localhost时,它指的是docker网络localhost,但当说"localhost"时;host.doker.internal";它对主机localhost 的平均值

最新更新