2017-10-19 13 views
2

Sur mon serveur distant, j'utilise un conteneur de docker a commencé avec:ne peut pas se connecter à MongoDB dans un conteneur docker-Compose avec login/pass

MONBULDING_PORT="8080" docker-compose up -d --no-deps --build monbulding-mongo

Il fonctionne très bien si je ne suis pas définir un nom d'utilisateur/mot de passe pour s'authentifier. Voici le fichier docker-compose.yaml correspondant:

monbulding-mongo: 
    image: mongo:latest 
    ports: 
    - "27017:27017" 

Maintenant, si je veux définir un nom d'utilisateur/mot de passe pour accéder à MongoDB, je change ce fichier dans:

monbulding-mongo: 
    image: mongo:latest 
    ports: 
    - "27017:27017" 
    environment: 
    - AUTH=yes 
    - MONGODB_ADMIN_USER=admin 
    - MONGODB_ADMIN_PASS=password 
    - MONGODB_APPLICATION_DATABASE=app 
    - MONGODB_APPLICATION_USER=user 
    - MONGODB_APPLICATION_PASS=password 

Et si je tente de me connecter dans MongoDB en utilisant Robo 3T, cela ne fonctionne pas: enter image description here

Quelqu'un sait ce que je fais mal? Merci!

EDIT: J'ai aussi essayé avec mongo shell:

mongo --host domain.net -u admin -p password

Mais il y a une erreur aussi.

+0

essayez ceci https://stackoverflow.com/questions/34559557/how-to-enable-authentication-on-mongodb-through-docker – Inforedaster

+0

I déjà fait ...:/ – LeCintas

+0

Quel est le message d'erreur? – kotapeter

Répondre

0

Si vous utilisez ceci: https://github.com/aashreys/docker-mongo-auth, il crée un fichier /data/db/.mongodb_password_set après la création de l'utilisateur, la prochaine fois il ignore la création de l'utilisateur. Si vous devez le forcer à créer un autre utilisateur assurez-vous de supprimer ce fichier