0

I'm running a mongodb replicaset localy the containers are up the config is okay but when I try to connect with this connection string:"mongosh mongodb://appuser:apppassword@mongo1:27017, mongo2:27017, mongo3:27017/appdb?replicaSet=my-mongo-set" I'malwayse getting this error "MongoServerSelectionError: Server selection timed out after 2000 ms"

docker-compose.yml:

`version: '3'
services:
  mongo1:
    hostname: mongo1
    image: mongo:latest
    expose:
      - 27017
    ports:
      - 30001:27017 
    restart: always
    command: mongod --replSet my-mongo-set --bind_ip_all
  mongo2:
    hostname: mongo2
    image: mongo:latest
    expose:
      - 27017
    ports:
      - 30002:27017
    restart: always
    command: mongod --replSet my-mongo-set --bind_ip_all
  mongo3:
    hostname: mongo3
    image: mongo:latest
    expose:
      - 27017
    ports:
      - 30003:27017
    restart: always
    command: mongod --replSet my-mongo-set --bind_ip_all
  mongoinit:
    image: mongo
    restart: "no"
    depends_on:
      - mongo1
      - mongo2
      - mongo3
    volumes:
      - ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
    command: mongod

  adminmongo:
    image: mrvautin/adminmongo:latest
    ports:
      - "8081:1234"
    environment:
      - AM_CONNECT_URI=mongodb://admin:adminpassword@mongo1:27017, mongo2:27017, mongo3:27017/?replicaSet=my-mongo-set&authSource=admin
      - HOST=0.0.0.0
    depends_on:
      - mongo1
      - mongo2
      - mongo3

volumes:
  mongo1-data:
  mongo2-data:
  mongo3-data:
`

mongo-init.js :

// Connect to the admin database
var adminDb = db.getSiblingDB("admin");

// Replica set configuration
var config = {
  "_id": "my-mongo-set",
  "members": [
    { "_id": 0, "host": "mongo1:27017" },
    { "_id": 1, "host": "mongo2:27017" },
    { "_id": 2, "host": "mongo3:27017" }
  ]
};

// Initialize replica set
rs.initiate(config);

// Create admin user
adminDb.createUser({
  user: "admin",
  pwd: "adminpassword",
  roles: [{ role: "root", db: "admin" }]
});

// Connect to the appdb database
var appDb = db.getSiblingDB("appdb");

// Create app user
appDb.createUser({
  user: "appuser",
  pwd: "apppassword",
  roles: [{ role: "readWrite", db: "appdb" }]
});

Note: I can vonnect using mongodbamin

enter image description here

connect to mongodb replicaset from remote machine.

0 Answers0