sql >> データベース >  >> NoSQL >> MongoDB

起動時にMongoDBコンテナ用のDBを作成するにはどうすればよいですか?

    ここでは、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. MongoDB $ isoDayOfWeek

    2. CDPオペレーショナルデータベース(COD)へのアプリケーションの展開

    3. Mongo$inオペレーターのパフォーマンス

    4. NoSQLデータベースの戦い-MongoDBとOracleNoSQLの比較