在尝试运行由 docker-secrets 管理的授权(带有文件)的 MongoDB docker 实例时,受此博客文章的启发,我一直遇到以下错误:
2020-07-24T16:25:26.656+0000 E QUERY [js] uncaught exception: Error: couldn't add user: Error preflighting normalization: U_STRINGPREP_PROHIBITED_ERROR :
设置
- 使用 WSL2 后端运行 docker 的 Windows 机器。
- 来自 docker hub 的最新 mongo映像(版本 4.2.8)
- 用于管理 MongoDB 数据库的身份验证凭据的 docker secrets
- 我的作曲家文件:
# 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
- 部署 docker stack 的 shell 命令
$ docker stack deploy --compose-file=docker-compose.yml my_db_stack
问题
不幸的是,容器不断死亡。在日志中,我能够找到上面提到的错误。