Как создать новую базу данных и необходимых пользователей по Docker для mongodb - PullRequest
0 голосов
/ 14 мая 2018

Привет! Я использую нижеприведенный файл Docker для создания экземпляра mongodb,

version: '3.1'
services:
  mongo:
    image: mongo
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: XXXXXXXXXXX
    ports:
      - 27017:27017

Теперь, как мне запустить скрипт write + run init для выполнения следующей задачи,

  • создать базу данных с именем "data"
  • Создание коллекций внутри этой базы данных
  • Создать 2 пользователей для этой базы данных.

1 Ответ

0 голосов
/ 14 мая 2018

Официальный образ docker mongo поддерживает создание / инициализацию БД:

https://hub.docker.com/_/mongo/ Прокрутите вниз до 'MONGO_INITDB_DATABASE'

MONGO_INITDB_DATABASE
This variable allows you to specify the name of a database to be used 
for creation scripts in /docker-entrypoint-initdb.d/*.js (see 
Initializing a fresh instance below). MongoDB is fundamentally designed 
for "create on first use", so if you do not insert data with your 
JavaScript files, then no database is created.

Initializing a fresh instance
When a container is started for the first time it will execute files
with extensions .sh and .js that are found in /docker-entrypoint-initdb.d. 
Files will be executed in alphabetical order. .js files will be 
executed by mongo using the database specified by the 
MONGO_INITDB_DATABASE variable, if it is present, or test otherwise. 
You may also switch databases within the .js script.
...