Crea un nuovo utente per MongoDB all'interno di Docker

Sto utilizzando l'image predefinita di MongoDB Docker e sto cercando di creare un nuovo utente per il database.

Attualmente sto cercando di farlo in questo modo:

  • nginx inversa proxy a mongodb interface di rest
  • Il server MongoDB si è schiantato, mostrando il seguente errore
  • come connettersi al server mongodb tramite tunnel ssh
  • Come posso eseguire il docker su windows server 2008 r2 in esecuzione in vmware?
  • MongoDB e set di dati che non si inseriscono nella RAM, non import quanto ti spingi
  • Ignorando la maturità, quale database sarebbe meglio per memorizzare i dati spaziali?
  • FROM docker.io/mongo:3.2 MAINTAINER <alexandernst> alexandernst@gmail.com ADD create_ddbb.js /tmp/ RUN mongod --fork --logpath /var/log/mongodb.log \ && sleep 5 && mongo foobar /tmp/create_ddbb.js 

    E il create_ddbb.js :

     db.createUser( { user: "*******", pwd: "*******************", roles: [ { role: "readWrite", db: "foobar" } ] } ); 

    E quando costruisco il Dockerfile, vedo:

     Step 4 : RUN mongod --fork --logpath /var/log/mongodb.log && sleep 5 && mongo foobar /tmp/create_ddbb.js ---> Running in 58ba44d02508 about to fork child process, waiting until server is ready for connections. forked process: 9 child process started successfully, parent exiting MongoDB shell version: 3.2.6 connecting to: foobar Successfully added user: { "user" : "***********", "roles" : [ { "role" : "readWrite", "db" : "foobar" } ] } ---> e73b6c8c8b83 Removing intermediate container 58ba44d02508 Successfully built e73b6c8c8b83 

    così l'utente viene creato, ma quando cerco di connettersi, ottengo:

     mongo_1 | 2016-05-13T17:44:02.159+0000 I NETWORK [initandlisten] connection accepted from 172.20.0.4:41294 #1 (1 connection now open) mongo_1 | 2016-05-13T17:44:02.160+0000 I ACCESS [conn1] SCRAM-SHA-1 authentication failed for ********* on foobar from client 172.20.0.4 ; UserNotFound: Could not find user *********@foobar mongo_1 | 2016-05-13T17:44:02.160+0000 I NETWORK [conn1] end connection 172.20.0.4:41294 (0 connections now open) 

    Perché succede? Come posso persistere l'utente creato?

    2 Solutions collect form web for “Crea un nuovo utente per MongoDB all'interno di Docker”

    La mia soluzione:

    All'interno del file Dockerfile :

     ADD create_ddbb.js /tmp/ RUN mongod -f /etc/mongod.conf --fork --logpath /var/log/mongodb.log \ && sleep 5 \ && mongo <YOUR DATABASE> /tmp/create_ddbb.js 

    All'interno di create_ddbb.js :

     db.createUser( { user: "your_user", pwd: "********************", roles: [ { role: "dbOwner", db: "your_database" } ] } , { w: "majority", wtimeout: 5000 } ); db.createCollection("test"); 

    Il createColleciton("test") alla fine è estremamente importnte. Senza questo, la createUser non viene applicata. Non so perché esattamente, mi dispiace.

    l'utente dovrebbe essere aggiunto nel database di amministrazione così: RUN mongod --fork --logpath /var/log/mongodb.log \ && sleep 5 && mongo foobar /tmp/create_ddbb.js

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.