MongoServerSelectionError: getaddringo EAI_AGAIN mongo

Viewed 202

I'm getting an error when my server is connecting to the MongoDB database. Both the server and mongoDB are in containers

The docker-compose files are as follows:

docker-compose.yml

version: '3'
services:
  client:
    build:
      context: ./client
      dockerfile: Dockerfile
    ports:
      - 3001:3001
    networks:
      - mern-network
    volumes:
      - ./client/src:/usr/app/src
      - ./client/public:/usr/app/public
    depends_on:
      - server
    environment:
      - REACT_APP_SERVER=http://localhost:5001
      # - CHOKIDAR_USEPOLLING=true
  # container 1: backend node server
  server:
    build:
      context: ./server
      dockerfile: Dockerfile
    ports:
      - '5001:5001'
    networks:
      - mern-network
    environment:
      - PORT=5001
    depends_on:
      - mongo

  # container 2: database
  mongo:
    image: mongo:4.4.13
    networks:
      - mern-network
    environment:
      - MONGO_INITDB_ROOT_USERNAME=docker_mongo
      - MONGO_INITDB_ROOT_PASSWORD=password
    volumes:
      - mongo-db:/data/db

networks:
  mern-network:
    driver: bridge

volumes:
  mongo-db:

docker-compose.dev.yml

version: '3'
services:
  # container 3: client, dev settings
  client:
    command: npm start
  # container 1: server, dev setting
  server:
    build:
      args:
        BUILD_ENV: development
    volumes:
      - ./server/:/app
      # - ./server/app/node_modules
    environment:
      - BUILD_ENV=development
      - MONGO_USER=docker_mongo
      - MONGO_PASSWORD=password
      - SESSION_SECRET=secret123456890qwerty
    command: npm run dev
  # container 2: database, dev settings
  mongo:
    environment:
      - MONGO_INITDB_ROOT_USERNAME=docker_mongo
      - MONGO_INITDB_ROOT_PASSWORD=password

I have no problems accessing into the mongodb database when I inspect the container using docker exec -it but error when I connect with node. I've tried many versions of mongoose still gives me same error.

MongoServerSelectionError: getaddrinfo EAI_AGAIN mongo
    at Timeout._onTimeout (/home/user/git_folder/project/server/node_modules/mongodb/lib/sdam/topology.js:312:38)
    at listOnTimeout (node:internal/timers:559:17)
    at processTimers (node:internal/timers:502:7) {
  reason: TopologyDescription {
    type: 'Unknown',
    servers: Map(1) {
      'mongo:27017' => ServerDescription {
        _hostAddress: HostAddress { isIPv6: false, host: 'mongo', port: 27017 },
        address: 'mongo:27017',
        type: 'Unknown',
        hosts: [],
        passives: [],
        arbiters: [],
        tags: {},
        minWireVersion: 0,
        maxWireVersion: 0,
        roundTripTime: -1,
        lastUpdateTime: 53541928,
        lastWriteDate: 0,
        error: MongoNetworkError: getaddrinfo EAI_AGAIN mongo
            at connectionFailureError (/home/user/git_folder/project/server/node_modules/mongodb/lib/cmap/connect.js:375:20)
            at Socket.<anonymous> (/home/user/git_folder/project/server/node_modules/mongodb/lib/cmap/connect.js:295:22)
            at Object.onceWrapper (node:events:640:26)
            at Socket.emit (node:events:520:28)
            at emitErrorNT (node:internal/streams/destroy:157:8)
            at emitErrorCloseNT (node:internal/streams/destroy:122:3)
            at processTicksAndRejections (node:internal/process/task_queues:83:21)
      }
    },
    stale: false,
    compatible: true,
    heartbeatFrequencyMS: 10000,
    localThresholdMS: 15,
    logicalSessionTimeoutMinutes: undefined
  },
  code: undefined
}
0 Answers
Related