Скрипт первого запуска в Docker
Скрипт первого запуска кладёт документ, пока том ещё пустой. Образ выполняет такие файлы только при первой инициализации хранилища данных, когда каталог базы ещё не содержит рабочих файлов.
В файле init/app.js
выбирают базу app
и вставляют одну запись
в коллекцию notes:
db = db.getSiblingDB('app');
db.notes.insertOne({ text: 'hello' });
Сервис db на mongo:8.3
монтирует том dbdata
в /data/db
и папку ./init
в /docker-entrypoint-initdb.d
без пароля при старте:
services:
db:
image: mongo:8.3
volumes:
- dbdata:/data/db
- ./init:/docker-entrypoint-initdb.d
volumes:
dbdata:
Фоновый подъём проекта
выполняют командой
docker compose up
с флагом -d:
docker compose up -d
После готовности сервера
внутри сервиса запускают клиент
и смотрят поле text
у документа в app -
там строка hello,
отдельная таблица вывода
в уроке не нужна:
docker compose exec db mongosh --quiet app --eval "db.notes.findOne({ text: 'hello' }, { _id: 0, text: 1 })"
Опишите на пустом томе cards коллекцию items в базе app через JavaScript-файл в подключённой папке старта.
Отметьте после подъёма, что документ с нужным текстом виден в базе app.