首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Windows上的机密文件在MongoDB停靠堆栈中添加“错误:无法添加用户”

使用Windows上的机密文件在MongoDB停靠堆栈中添加“错误:无法添加用户”
EN

Stack Overflow用户
提问于 2020-07-24 17:18:16
回答 1查看 1.5K关注 0票数 3

在试图运行具有由docker管理的授权的MongoDB停靠实例时--机密(使用文件)--受到此博客帖子的启发,我始终遇到以下错误:

代码语言:javascript
复制
2020-07-24T16:25:26.656+0000 E  QUERY    [js] uncaught exception: Error: couldn't add user: Error preflighting normalization: U_STRINGPREP_PROHIBITED_ERROR :

设置

  • Windows机器运行带有WSL2后端的停靠程序。
  • 来自码头枢纽的最新mongo 图像 (版本4.2.8)
  • 用于管理MongoDB数据库的身份验证凭据的docker机密
  • 我的作曲家档案:
代码语言:javascript
复制
# docker-compose.yml

version: '3.5'
services:
  my_db:
    image: mongo
    command: --auth
    environment:
      MONGO_INITDB_ROOT_PASSWORD_FILE: /run/secrets/mongodb_root_password
      MONGO_INITDB_ROOT_USERNAME_FILE: /run/secrets/mongodb_root_username
    secrets:
      - mongodb_root_password
      - mongodb_root_username
secrets:
  mongodb_root_password:
    - file: mongodb/.mongodb_root_password
  mongodb_root_username:
    - file: mongodb/.mongodb_root_username
  • 用于部署停靠堆栈的shell命令
代码语言:javascript
复制
$ docker stack deploy --compose-file=docker-compose.yml my_db_stack

问题

不幸的是,容器一直在死去。在日志中,我找到了上面提到的错误。

EN

回答 1

Stack Overflow用户

发布于 2020-07-24 17:18:16

事实证明,这个问题是由Windows样式的行结束mongodb/.mongodb_root_passwordmongodb/.mongodb_root_username文件中造成的。这些文件是在Windows主机上创建的,然后(我猜想)被盲目地复制到容器中。

解决方案

使用notepad++,我将行尾转换为Unix样式,从而解决了这个问题。

为了切换行尾,我在Notepad++上右击了下面图像中显示的底部栏的突出显示部分。

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

https://stackoverflow.com/questions/63078470

复制
相关文章

相似问题

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