#mongodb #docker #mongodb-query #dockerfile
Вопрос:
У меня есть док-файл, который:
- копирование папки сценария mongodb с моего локального компьютера в контейнер
- В папке сценария есть сценарий оболочки
execute-mongodb-query.sh
, который запускает файл mongodb .jsemployee-mongodb-createlocalUser.js
- файл .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:»администратор» для пользователя в другой базе данных?