【发布时间】:2019-09-29 06:21:51
【问题描述】:
大家,
我很难将 MongoDB 容器设置为具有 root 密码并自动创建具有较少权限的新用户(这将是我的应用程序用户)。
理想情况下,我应该只有一些脚本和一个 docker-compose 配置。
我尝试添加 MONGO_INITDB_ROOT_USERNAME 和 MONGO_INITDB_ROOT_PASSWORD 但它们似乎不起作用。他们做了一些事情,因为当我像这样启动容器时,我不能只连接到 mongo shell 并运行所有命令(传递用户名和密码会引发未经授权的错误)。
然后我考虑在/docker-entrypoint-initdb.d/ 添加一个脚本,但它们似乎没有运行。它们不会显示在控制台上。此外,我只是放了一个这样的javascript,我不确定它们是否会起作用:
var db = connect("mongodb://localhost/admin");
db.createRole(
{
role: "somerole",
privileges: [
{
actions: [ "find", "update", "insert" ],
resource: { db: "mydb", collection: "" } <--- does it means all colections od database mydb?!?!
}
],
roles: [ ]
}
)
db.createUser(
{
user: "admin",
pwd: "adminpass",
roles: [ { role: "userAdminAnyDatabase", db: "mydb" } ]
}
)
db.createUser(
{
user: "system",
pwd: "systempass",
roles: [ { role: "somerole", db: "mydb" } ]
}
)
我还想创建集合和插入文档。我们如何做到这一点?不应该是入口点!?
【问题讨论】:
标签: mongodb docker docker-compose docker-entrypoint