MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak stworzyć DB dla kontenera MongoDB przy starcie?

Oto kolejne czystsze rozwiązanie za pomocą docker-compose i js skrypt.

Ten przykład zakłada, że ​​oba pliki (docker-compose.yml i mongo-init.js) znajdują się w tym samym folderze.

docker-compose.yml

Wersja
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>"
                }
            ]
        }
);

Następnie po prostu uruchom usługę, uruchamiając następujące polecenie docker-compose

docker-compose up --build -d mongodb 

Uwaga :Kod w folderze docker-entrypoint-init.d jest wykonywany tylko wtedy, gdy baza danych nigdy wcześniej nie była inicjowana.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB na Ubuntu nie uruchamia się jako usługa, nic w dzienniku

  2. Przedstawiamy wykresy wyszukiwania w MongoDB

  3. MongoDB $lte operator potoku agregacji

  4. Przechowywanie wartości null vs brak przechowywania klucza w MongoDB

  5. Łączenie się z bazami danych MongoDB