Можно ли подключиться к Docker-контейнеру, на котором запущен образ MongoDB, из внешнего приложения nodejs, работающего локально?Я попытался соединиться через localhost: 27017.Вот файл компоновки докера, который я использую:
version: '3'
services:
mongodb:
image: 'bitnami/mongodb:3.6.8'
ports:
- "27017:27017"
environment:
- MONGODB_ROOT_PASSWORD=$MONGODB_ROOT_PASSWORD
- MONGODB_USERNAME=$MONGODB_USERNAME
- MONGODB_PASSWORD=$MONGODB_PASSWORD
- MONGODB_DATABASE=$MONGODB_DATABASE
volumes:
- /data/db:/bitnami
Я пытаюсь подключиться к нему с помощью следующего URL безуспешно:
mongodb://${process.env.MONGODB_USERNAME}:${process.env.MONGODB_PASSWORD}@localhost:27017
РЕДАКТИРОВАТЬ: Подключениечерез mongodb: // localhost: 27017 работает, но ошибка аутентификации URL.Я распечатал результат этой строки, и в этом нет ничего особенно плохого.Я проверил, что имя пользователя и пароль соответствуют пользователям внутри Монго в контейнере Docker.
app.listen(port, () => {
console.log(`Example app listening on port ${port}!`);
const url = (() => {
if(process.env.MONGODB_USERNAME && process.env.MONGODB_PASSWORD) {
return `mongodb://${process.env.MONGODB_USERNAME}:${process.env.MONGODB_PASSWORD}@localhost:27017/`;
}
console.log('could not find environment vars for mongodb');
})();
MongoClient.connect(url, (err, client) => {
if(err) {
console.log('DB connection error');
} else {
console.log("Connected successfully to server");
client.close();
}
});
});