У меня есть демонстрационное приложение Node JS, которое я хочу подключить к базе данных Mon go. Мой код находится на сервере, который не поддерживает Mon go, поэтому я пытаюсь запустить его из контейнера docker. Когда я запускаю приложение, я получаю ошибку при подключении к базе данных:
UnhandledPromiseRejectionWarning: MongoNetworkError: failed to connect to server [mongo:27017] on first connect [MongoNetworkError: getaddrinfo ENOTFOUND mongo mongo:27017]
Контейнер с базой данных запущен и работает:
[root@xxxxxx docker-node-mongo]# docker run -d -p 27017-27019:27017-27019 --name mongodb mongo:4.0.4^C0.0:27017-27019->27017-27019/tcp mongodb
[root@xxxxxx docker-node-mongo]# [root@vps12219000 docker-node-mongo]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS
PORTS NAMES
ccdf49525782 mongo:4.0.4 "docker-entrypoint.s 26 minutes ago Up 26
minutes 0.0.0.0:27017-27019->27017-27019/tcp mongodb
и я подключаюсь к БД следующим образом:
const mongoose = require('mongoose');
const DB_URI = 'mongodb://mongo:27017/toDoApp';
mongoose.connect(DB_URI).then(() => {
console.log('Listening on port: ' + PORT);
app.listen(PORT);
});
Кто-нибудь может посоветовать, что я делаю не так? Спасибо!
Примечание: я хочу запускать только БД внутри контейнера, но не часть узла.