файл mongodb .js не выполняется из сценария оболочки в файле Dockerfile

#mongodb #docker #mongodb-query #dockerfile

Вопрос:

У меня есть док-файл, который:

  1. копирование папки сценария mongodb с моего локального компьютера в контейнер
  2. В папке сценария есть сценарий оболочки execute-mongodb-query.sh , который запускает файл mongodb .js employee-mongodb-createlocalUser.js
  3. файл .js должен создавать базу данных и пользователя в mongodb

Докерфайл

 FROM mongo:latest
RUN apt-get update 
RUN apt-get install -y vim
COPY scripts /root/scripts
COPY scripts/execute-mongodb-query.sh /docker-entrypoint-initdb.d/
 

execute-mongodb-query.sh

 #!/bin/bash
echo "Hi..."
echo $MONGO_VERSION
mongo employee employee-mongodb-createlocalUser.js
 

employee-mongodb-createlocalUser.js

 use employee
db.createUser(
    {
      user: "employee",
      pwd: "employee",
      roles: [ { role: "userAdminAnyDatabase", db: "admin" }, 
               { role: "dbAdminAnyDatabase", db: "admin" }, 
               { role: "readWriteAnyDatabase", db: "admin" } , "readWrite"]
    }
  );
 

docker build -t mongo_image . является успешным

Но докер запускает сообщение об ошибке ниже:

     D:dockerProject> docker  run  -it -p 27019:27017  mongo_image
    about to fork child process, waiting until server is ready for connections.
    forked process: 28
    /usr/local/bin/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/execute-mongodb-query.sh
    Hi...
    4.4.6
    MongoDB shell version v4.4.6
    connecting to: mongodb://127.0.0.1:27017/test?compressors=disabledamp;gssapiServiceName=mongodb
    {"t":{"$date":"2021-07-09T06:05:43.791 00:00"},"s":"I",  "c":"NETWORK",  "id":22943,   "ctx":"listener","msg":"Connection accepted","attr":{"remote":"127.0.0.1:33284","connectionId":2,"connectionCount":1}}
    {"t":{"$date":"2021-07-09T06:05:43.791 00:00"},"s":"I",  "c":"NETWORK",  "id":51800,   "ctx":"conn2","msg":"client metadata","attr":{"remote":"127.0.0.1:33284","client":"conn2","doc":{"application":{"name":"MongoDB Shell"},"driver":{"name":"MongoDB Internal Client","version":"4.4.6"},"os":{"type":"Linux","name":"Ubuntu","architecture":"x86_64","version":"18.04"}}}}
    Implicit session: session { "id" : UUID("f79d5124-5c58-4e74-9548-c0f1fcbf1ec9") }
    MongoDB server version: 4.4.6
    {"t":{"$date":"2021-07-09T06:05:43.799Z"},"s":"E",  "c":"-",        "id":22779,   "ctx":"main","msg":"file [{filename}] doesn't exist","attr":{"filename":"employee-mongodb-createlocalUser.js"}}
    failed to load: employee-mongodb-createlocalUser.js
    exiting with code -3
    {"t":{"$date":"2021-07-09T06:05:43.801 00:00"},"s":"I",  "c":"NETWORK",  "id":22944,   "ctx":"conn2","msg":"Connection ended","attr":{"remote":"127.0.0.1:33284","connectionId":2,"connectionCount":0}}
 

PS: Мне нужен файл .js, потому что у меня много запросов mongodb, которые нужно выполнить, поэтому сохраняйте отдельный файл .js для запросов.

Комментарии:

1. Позволяет ли mongodb добавлять роли db:»администратор» для пользователя в другой базе данных?