РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗dcMgInUs 15 of 24 menu
◀ ▶

Пользователь в скрипте в Docker

Пользователь в скрипте появляется вместе с первым документом, а не отдельной кнопкой после старта. На пустом томе образ читает пароль root из окружения, выполняет файлы старта и только потом принимает обычные подключения.

В init/app.js кладут запись, затем создают учётку app с паролем demo и ролью readWrite для базы app:

db = db.getSiblingDB('app'); db.notes.insertOne({ text: 'hello' }); db.createUser({ user: 'app', pwd: 'demo', roles: [{ role: 'readWrite', db: 'app' }] });

Сервис db на mongo:8.3 монтирует свой пустой том userdata в /data/db, папку старта и задаёт root с паролем demo:

services: db: image: mongo:8.3 environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: demo volumes: - userdata:/data/db - ./init:/docker-entrypoint-initdb.d volumes: userdata:

Фоновый подъём проекта выполняют так:

docker compose up -d

Проверка идёт под логином app, паролем demo и базой app - короткий ping проходит, отдельная таблица вывода в уроке не нужна:

docker compose exec db mongosh --quiet -u app -p demo --authenticationDatabase app app --eval "db.runCommand({ ping: 1 })"

Опишите на томе teamdata прикладного пользователя writer с учебным паролем и ролью записи в базе app в том же JavaScript, что и первый документ.

Отметьте, что вход под writer в app проходит, а анонимный запрос на этом томе отказывает.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить