Jump to content



Αδυναμια Authentication σε mongodb container


Seek & Find

Recommended Posts

Εχω προσπαθω να συνδεθω σε ενα mongodb docker container αλλα περνω authentication failed.

Τι δεν βλεπω αγαπητα απανταχου rubber ducks;

 

# mongo -u user -p test --authenticationDatabase test_db

MongoDB shell version v4.2.1
connecting to: mongodb://localhost:27017/?authSource=test_db&compressors=disabled&gssapiServiceName=mongodb
2019-11-22T13:30:43.557+0000 E  QUERY    [js] Error: Authentication failed. :
connect@src/mongo/shell/mongo.js:341:17
@(connect):2:6
2019-11-22T13:30:43.558+0000 F  -        [main] exception: connect failed
2019-11-22T13:30:43.558+0000 E  -        [main] exiting with code 1

 

init-mongo.js
db.auth('root', 'letmein')
db = db.getSiblingDB('test_db')
db.createUser({
  user: 'user',
  pwd: 'test',
  roles: [
    {
      role: 'readWrite',
      db: 'test_db',
    },
  ],
});

docker-compose.yml
version: '3'
services:
    database:
        image: 'mongo'
        container_name: 'mongo-container'
        environment:
            - MONGO_INITDB_DATABASE=test_db
            - MONGO_INITDB_ROOT_USERNAME=root    # container root username 
            - MONGO_INITDB_ROOT_PASSWORD=root    # container root password
        volumes:
            - ./init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro
            - ./mongo-volume:/data/db
        ports:
            - '27017-27019:27017-27019'

 

Link to comment
Share on other sites

Αστα να πανε πονος στη δουλεια.. Ναι τρεχει κανονικα. βλεπεις κατι στραβο στo config η στο docker-compose που δεν καταλαβαινω?

Γενικα η μονγκο πρεπει να τρεχει στο κοντεινερ της για να πανε να κουμπωσουν τα αλλα services

Έγινε επεξεργασία από Seek & Find
Link to comment
Share on other sites

Solution!!!!!!!!!!!!!!!!!!!!!

 

docker-compose.yml

version: '3'
services:
    database:
        image: 'mongo'
        container_name: 'mongo-cnt'
        environment:
            - MONGO_INITDB_DATABASE=test_db
            - MONGO_INITDB_ROOT_USERNAME=root    # container root username
            - MONGO_INITDB_ROOT_PASSWORD=root    # container root password
        volumes:
            - ./init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro
            - ./mongo-volume:/data/db
            - ./logs:/logs
            - ./conf:/etc/mongo
        ports:
            - '27017-27019:27017-27019'

init-mongo.js

db.createUser(
    {
      user: 'user',
      pwd: 'test',
      roles: [
        {
          role: 'readWrite',
          db: 'test_db'
        }
     ]
   }
)

/etc/mongo/mongodb.conf

net:
bindIp: 0.0.0.0

Δωστε στα volumes ./conf:/etc/mongo ωστε να μπορειτε να αλλαξετε το mongodb.conf και να κανετε bind στη ip 0.0.0.0. Ξερω δεν ειναι οτι καλυτερο αλλα αφηνοντας το localhost το κονταινερ δεχεται connections μονο τοπικα απο τον εαυτο του και δεν επικοινωνει με τον εξω κοσμο..

Τρελο bug, μου εσπασε τα νευρα! Thank me later να ουμ.. ουφ!

 

  • Like 2
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Δημιουργία...

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.