Mostafa Ghadimi
Mostafa Ghadimi

Reputation: 6736

Mongo-Express: failed to connect to server [mongo:27017] on first connect

I'm trying to run the simplest container of mongo and mongo-express using docker-compose. I have faced with many errors that will be explained later on.

I have tried the following docker-compose configurations:

1.

version: '2'
services:
    mongo:
        image: mongo:latest
    mongo-express:
        image: mongo-express:latest
        ports:
            - 8082:8081

2.

version: '2'

services: 
  mongo:
    image: mongo:latest
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: root
    ports:
      - 27017:27017
    volumes:
      - db-data:/data/db
      - mongo-config:/data/configdb

  mongo-express:
    image: mongo-express
    restart: always
    ports:
      - 8081:8081
volumes: 
  db-data:
  mongo-config:

and etc. But all of them have the following common error whenever I execute docker-compose -f docker-compose.yml up:

mongo-express_1  | Mongo Express server listening at http://0.0.0.0:8081
mongo-express_1  | Server is open to allow connections from anyone (0.0.0.0)
mongo-express_1  | basicAuth credentials are "admin:pass", it is recommended you change this in your config.js!
mongo-express_1  | 
mongo-express_1  | /node_modules/mongodb/lib/server.js:265
mongo-express_1  |         process.nextTick(function() { throw err; })
mongo-express_1  |                                       ^
mongo-express_1  | MongoError: failed to connect to server [mongo:27017] on first connect
mongo-express_1  |     at Pool.<anonymous> (/node_modules/mongodb-core/lib/topologies/server.js:326:35)
mongo-express_1  |     at emitOne (events.js:116:13)
mongo-express_1  |     at Pool.emit (events.js:211:7)
mongo-express_1  |     at Connection.<anonymous> (/node_modules/mongodb-core/lib/connection/pool.js:270:12)
mongo-express_1  |     at Object.onceWrapper (events.js:317:30)
mongo-express_1  |     at emitTwo (events.js:126:13)
mongo-express_1  |     at Connection.emit (events.js:214:7)
mongo-express_1  |     at Socket.<anonymous> (/node_modules/mongodb-core/lib/connection/connection.js:175:49)
mongo-express_1  |     at Object.onceWrapper (events.js:315:30)
mongo-express_1  |     at emitOne (events.js:116:13)

I have searched this issue all over the internet and github repositories and tried the other solutions, but none of them worked appropriately.

link1 | link2 | link3 | link4 | etc.

Upvotes: 2

Views: 4773

Answers (2)

ChaseD20
ChaseD20

Reputation: 127

docker run -d 
-p 8081:8081 
--name mongo-express 
-e ME_CONFIG_MONGODB_ADMINUSERNAME=**<username>** 
-e ME_CONFIG_MONGODB_ADMINPASSWORD=**<password>** 
--net **<mongo network name>** 
-e ME_CONFIG_MONGODB_SERVER=**<mongodb container name>** 
-e ME_CONFIG_OPTIONS_EDITORTHEME=ambiance 
mongo-express

Upvotes: 0

Mostafa Ghadimi
Mostafa Ghadimi

Reputation: 6736

First I have run docker stop $(docker ps -a -q) and then changed the docker-compose.yml file to the following content:

version: '2'
services:
  mongo:
    image: mongo:3.4
    container_name: mongo
    ports:
      - '27017:27017'
    volumes: 
      - '/data/configdb:/data/configdb'
      - '/data/db:/data/db'
  mongo-express:
    image: mongo-express:0.49.0
    container_name: mongo_express
    depends_on:
      - 'mongo'
    ports:
      - '5050:8081'
    environment:
      - 'ME_CONFIG_OPTIONS_EDITORTHEME=ambiance'

Upvotes: 3

Related Questions