mongodb/db_init.sh (raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
#!/bin/bash set -e # dbUser is the userName used from applicatoin code to interact with databases and dbPwd is the password for this user. # MONGO_INITDB_ROOT_USERNAME & MONGO_INITDB_ROOT_PASSWORD is the config for db admin. # admin user is expected to be already created when this script executes. We use it here to authenticate as admin to create # dbUser and databases. echo ">>>>>>> trying to create database and users" if [ -n "${MONGO_INITDB_ROOT_USERNAME:-}" ] && [ -n "${MONGO_INITDB_ROOT_PASSWORD:-}" ] && [ -n "${dbUser:-}" ] && [ -n "${dbPwd:-}" ]; then mongosh -u $MONGO_INITDB_ROOT_USERNAME -p $MONGO_INITDB_ROOT_PASSWORD<<EOF // create DB db=db.getSiblingDB('felt'); use felt; if (db.system.users.find({user:'$dbUser'}).count()) { return; } // Create user account the API uses to connect to db db.createUser({ user: '$dbUser', pwd: '$dbPwd', roles: [{ role: 'readWrite', db: 'felt' }] }); // Insert default config options db.config.insertOne({ _immutable: true }); EOF else echo "MONGO_INITDB_ROOT_USERNAME,MONGO_INITDB_ROOT_PASSWORD,dbUser and dbPwd must be provided. Some of these are missing, hence exiting database and user creation" exit 403 fi |