![](/img/trans.png)
[英]How to establish connection to mongo db in a Node js express server using serverless?
[英]Running node js app inside a container refuse to establish connection with mongo db
我正在嘗試在運行容器中執行節點 js 應用程序,而 mongo db 容器正在運行並上線(docker run -d --name mongodb p 27017:27017 mongo)
這是與 ide 完美配合的節點 js 代碼,並在容器上運行時拋出連接錯誤
無法連接到 MONGODB MongooseServerSelectionError:連接 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);
}
}
);
我運行服務器的命令docker run --name server -p 80:80 --rm server
節點js docker文件
FROM node
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
EXPOSE 80
CMD [ "node", "app.js" ]
我需要按照描述運行它,兩個單獨的容器暴露端口 80 用於服務器,另一個容器暴露端口 27017 用於 mongo。
多謝你們
我使用了錯誤的地址,而不是使用“localhost”,我們應該使用“host.docker.internal”,當說 localhost 時它指的是 docker 網絡 localhost,但是當說“host.Z05B6053C41A213B6053C41A21340AFD6inFC3B158”時,我們應該使用“host.docker.internal”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.