首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用身份验证为mongoDB 4.2创建Dockerfile

使用身份验证为mongoDB 4.2创建Dockerfile
EN

Stack Overflow用户
提问于 2019-10-05 16:35:37
回答 1查看 859关注 0票数 0

如何编写Dockerfile脚本,以便为mongoDB 4.2创建管理用户?

是否有一行命令来创建不使用交互式子subshell的管理用户?(在mongoDB 文档中没有看到任何东西)

谢谢你的帮助。

传递MONGO_INITDB_ROOT_USERNAME和MONGO_INITDB_ROOT_PASSWORD不再有效(从Docker图像文档中删除)。

mongo文档只显示交互式shell管理用户创建。

> mongo admin

执行mongo交互式shell,但是如何编写一个shell脚本来从顶层shell中输入命令呢?

代码语言:javascript
复制
FROM mongo

RUN mongo admin ???? db.createUser({ user: 'jsmith', pwd: 'some-initial-password', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });

停靠程序生成过程应该显示:

成功添加用户:{“用户”:"jsmith",“角色”:{“角色”:"userAdminAnyDatabase","db“:"admin”}

EN

回答 1

Stack Overflow用户

发布于 2019-10-06 00:15:19

好的,下面是通过Dockerfile添加authetication的方法。

  • 创建一个init.js文件:
代码语言:javascript
复制
db = new Mongo().getDB("admin");

// create admin user

db.createUser({
  user: "admin",
  pwd: "password",
  roles: [
    {
      role: "clusterAdmin",
      db: "admin"
    }
  ]
});


// create non admin user

db.createUser({
  user: "toto",
  pwd: "123",
  roles: [
    {
      role: "readWrite",
      db: "tube"
    }
  ]
});
  • 创建Dockerfile:
代码语言:javascript
复制
FROM mongo

# init.js will be executed when the mongo instance runs

COPY ./init.js ./docker-entrypoint-initdb.d
  • 建立你的码头形象

docker build -t mongoAuth .

  • 运行容器(附加模式查看日志)

docker run --name mongoContainer -p 27017:27017 mongoAuth

我所缺少的是,我没有通过以下方法设置创建用户(管理数据库)的数据库:

db = new Mongo().getDB("admin");

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58250296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档