MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да създадете DB за MongoDB контейнер при стартиране?

Ето още едно по-чисто решение с помощта на docker-compose и js скрипт.

Този пример предполага, че и двата файла (docker-compose.yml и mongo-init.js) лежат в една и съща папка.

docker-compose.yml

version: '3.7'

services:
    mongodb:
        image: mongo:latest
        container_name: mongodb
        restart: always
        environment:
            MONGO_INITDB_ROOT_USERNAME: <admin-user>
            MONGO_INITDB_ROOT_PASSWORD: <admin-password>
            MONGO_INITDB_DATABASE: <database to create>
        ports:
            - 27017:27017
        volumes:
            - ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro

mongo-init.js

db.createUser(
        {
            user: "<user for database which shall be created>",
            pwd: "<password of user>",
            roles: [
                {
                    role: "readWrite",
                    db: "<database to create>"
                }
            ]
        }
);

След това просто стартирайте услугата, като изпълните следната команда docker-compose

docker-compose up --build -d mongodb 

Забележка :Кодът в папката docker-entrypoint-init.d се изпълнява само ако базата данни никога не е била инициализирана преди.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Индекс в MongoDB

  2. DbRef с Mongoose - mongoose-dbref или попълване?

  3. разбират MongoDB кеш система

  4. Методът за намиране на Mongoose с $или условие не работи правилно

  5. MongoDB $indexOfBytes