Ошибка: не удалось добавить пользователя в стек докеров MongoDB с помощью файла секретов в Windows.

При попытке запустить экземпляр докера MongoDB с авторизацией, управляемой секретами докера (с файлами), вдохновленный этим сообщение в блоге, я постоянно сталкивался со следующей ошибкой:

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.
  • последнее изображение монго из Docker Hub (версия 4.2.8)
  • секреты докера для управления учетными данными аутентификации в базе данных MongoDB
  • мой файл композитора:
# 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 deploy --compose-file=docker-compose.yml my_db_stack

Проблема

К сожалению, контейнер продолжал умирать. В журналах я смог найти ошибку, упомянутую выше.


person Sharkovsky87    schedule 24.07.2020    source источник


Ответы (1)


Оказывается, проблема была вызвана окончанием строк в стиле Windows в файлах mongodb/.mongodb_root_password и mongodb/.mongodb_root_username. Эти файлы были созданы на хосте Windows, а затем (я полагаю) были слепо скопированы в контейнер.

Решение

Используя notepad ++, я переключил окончания строк на стиль Unix, что решило проблему.

Чтобы переключить окончания строк, я щелкнул правой кнопкой мыши выделенную часть нижней панели на изображении ниже в Notepad++. Блокнот выделяет окончания строк

person Sharkovsky87    schedule 24.07.2020
comment
Итак, как вы можете использовать стиль Unix в Notepad++? - person lyrio; 02.01.2021
comment
@lyrio Я отредактировал ответ, чтобы ответить на ваш комментарий. Надеюсь это поможет. - person Sharkovsky87; 04.01.2021
comment
Это сработало. Большое спасибо. :) - person Pravin Kumar; 31.07.2021