Ich verwende das Standard-MongoDB Docker-Image und versuche, einen neuen Benutzer für die Datenbank zu erstellen.
Ich versuche es gerade so:
FROM docker.io/mongo:3.2
MAINTAINER <alexandernst> [email protected]
ADD create_ddbb.js /tmp/
RUN mongod --fork --logpath /var/log/mongodb.log \
&& sleep 5 && mongo foobar /tmp/create_ddbb.js
Und die create_ddbb.js
:
db.createUser(
{
user: "*******",
pwd: "*******************",
roles: [
{ role: "readWrite", db: "foobar" }
]
}
);
Und wenn ich das Dockerfile erstelle, sehe ich:
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
Der Benutzer wird also erstellt, aber wenn ich versuche, eine Verbindung herzustellen, wird Folgendes angezeigt:
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)
Warum passiert das? Wie kann ich den erstellten Benutzer beibehalten?
mongo.conf
Datei?mongo.conf
, die Sie von Docker erhaltenFROM docker.io/mongo:3.2
mongo:latest
also war ich mir nicht sicher.Der Benutzer sollte folgendermaßen in die Admin-Datenbank aufgenommen werden:
RUN mongod --fork --logpath /var/log/mongodb.log \ && sleep 5 && mongo foobar /tmp/create_ddbb.js
quelle
mongo admin /tmp/create_ddbb.js
? Wenn ja, habe ich das versucht und es funktioniert immer noch nicht (gleiche Ausgabe).