I try to connect to docker MongoDB from a NestJS API but, got after hours the following error :
ERROR [MongooseModule] Unable to connect to the database
I checked some posts :
- Unable to Connect MongoDB with NestJS ( Docker )
- NestJS: Unable to connect to MongoDB using MongooseModule.forRootAsync
Here is my docker-compose.yml :
version: '3.7'
services:
mongo5:
container_name: mongo5-user-dev
image: mongo:5.0
env_file:
- .env
ports:
- '27018:27017'
volumes:
- ./data:/data/db
- ./docker-entrypoint-initdb.d/init.js:/docker-entrypoint-initdb.d/init.js:ro
The .env file looks like :
# MongoDB configuration
MONGO_INITDB_ROOT_USERNAME=admin
MONGO_INITDB_DATABASE=users
MONGO_INITDB_ROOT_PASSWORD=pass
# User specific
DB_USER=user_login
DB_PASSWORD=user_pass
Try this DSN :
mongodb://user_login:user_pass@mongo5-user-dev:27018/users
mongodb://admin:pass@mongo5-user-dev:27018/users
mongodb://user_login:user_pass@mongo5-user-dev:27017/users
mongodb://admin:pass@mongo5-user-dev:27017/users
...
Make a init.js that's look like :
db.getSiblingDB('users')
db.createCollection('users_collection')
db.createUser(
{
user: "user_login",
pwd: "user_pass",
roles: [
{
role: "readWrite",
db: "users"
}
]
}
);
Docker logs says that user was successfully created...
I can connect to the container :
docker exec -it mongo5-user-dev mongo -u admin -p
But when the API runs, got an error... whatever is the DSN !
What i m missing please ?
Truely,
DaCoDeMaNiaK