Mongdb身份验证无法使用Docker忽略/docker-entrypoint-initdb.d/创建用户

时间:2020-07-25 12:33:49

标签: mongodb docker

任何人都可以指导我使用docker在MongoDB上启用身份验证的方法有什么问题。

Docker版本19.03.8,构建afacb8b7f 操作系统ubuntu 18.04

因此,基本上,我创建了mongo-it.sh文件,如下所示:

mongo -- "$MONGO_INITDB_DATABASE" <<EOF
    var rootUser = '$MONGO_INITDB_ROOT_USERNAME';
    var rootPassword = '$MONGO_INITDB_ROOT_PASSWORD';
    var admin = db.getSiblingDB('admin');
    admin.auth(rootUser, rootPassword);

    var user = '$MONGO_INITDB_USERNAME';
    var passwd = '$MONGO_INITDB_ROOT_PASSWORD';
    db.createUser({user: '$MONGO_USERNAME', pwd: '$MONGO_PASSWORD', roles: ["readWrite"]});
EOF 

我尝试使用docker运行此脚本,如下所示:

docker run --name mongodDb_authn -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME="admin2" -e MONGO_INITDB_ROOT_PASSWORD="v3jpurNRZVpzzK27" -e MONGO_INITDB_DATABASE="mydb" -e MONGO_USERNAME="mongodb-user" -e MONGO_PASSWORD="v3jpurNRZVp2132" -v $PWD/mongo-init.sh:/docker-entrypoint.initdb.d/mongo-init.sh:ro mongo:4.2.8 

它启动docker但不运行脚本,输出如下:

Successfully added user: {
        "user" : "admin2",
        "roles" : [
                {
                        "role" : "root",
                        "db" : "admin"
                }
        ]
}
2020-07-25T11:52:29.004+0000 I  SHARDING [ftdc] Marking collection local.oplog.rs as collection version: <unsharded>
2020-07-25T11:52:29.005+0000 E  -        [main] Error saving history file: FileOpenFailed: Unable to open() file /home/mongodb/.dbshell: No such file or directory
2020-07-25T11:52:29.007+0000 I  NETWORK  [conn2] end connection 127.0.0.1:34098 (0 connections now open)

/usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*

它忽略“忽略/docker-entrypoint-initdb.d”,我可以使用root用户名和密码进行身份验证,但不能使用其他用户名进行身份验证。该脚本不会被执行,并且会被忽略。请问有人可以帮我解决这个问题吗?

0 个答案:

没有答案