From 9c3c67e4542db3f87d6bcf40ec8168fb1aa29b6c Mon Sep 17 00:00:00 2001 From: Matthias Sieber Date: Mon, 3 Feb 2020 16:11:27 -0800 Subject: [PATCH] Shell script asks for data to be used via prompt --- README.md | 8 +++++++- buildMongo.sh | 20 ++++++++++++++++---- docker-compose.yml | 2 -- setup/create-admin.js | 9 --------- setup/create-user.js | 8 -------- 5 files changed, 23 insertions(+), 24 deletions(-) delete mode 100644 setup/create-admin.js delete mode 100644 setup/create-user.js diff --git a/README.md b/README.md index 8ed0fdd..28e23a1 100644 --- a/README.md +++ b/README.md @@ -1 +1,7 @@ -./buildMongo.sh +# mongo_docker_bootstrap + +Simple shell script to create a local mongo docker container. + +Running `./buildMongo.sh` will prompt the user to enter username/password of the global admin account. Upon successful creation of said user, the next three prompts will ask for the name of the database and username/password of a user that has read/write access to the database to-be-created. + +`docker-compose` needs to be in the path for the script to work properly. diff --git a/buildMongo.sh b/buildMongo.sh index e1ec864..6f04c84 100755 --- a/buildMongo.sh +++ b/buildMongo.sh @@ -1,10 +1,22 @@ - #!/bin/sh +ADMIN_DB='admin' + docker-compose down && docker-compose rm && docker-compose pull && docker-compose build --no-cache && docker-compose up -d --force-recreate - sleep 1 -docker exec db_mongodb mongo admin ./setup/create-admin.js -docker exec db_mongodb mongo myDb ./setup/create-user.js -u admin -p admin --authenticationDatabase admin + sleep 1 + +echo "Enter admin username" +read ADMIN_USER +echo "Enter admin password" +read ADMIN_PWD +docker exec db_mongodb mongo ${ADMIN_DB} --eval "db.createUser({user:'${ADMIN_USER}',pwd:'${ADMIN_PWD}',roles:[{role:'userAdminAnyDatabase',db:'${ADMIN_DB}'},{role:'readWrite',db:'${ADMIN_DB}'}]});" && +echo "Enter database name" +read DB +echo "Enter username" +read DBUSER +echo "Enter password" +read DBPASS +docker exec db_mongodb mongo ${DB} --eval "db.createUser({user:'${DBUSER}', pwd:'${DBPASS}', roles:[{role:'readWrite',db:'${DB}'}]});" -u ${ADMIN_USER} -p ${ADMIN_PWD} --authenticationDatabase ${ADMIN_DB} diff --git a/docker-compose.yml b/docker-compose.yml index 9f15295..9815be0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,13 +5,11 @@ mongo: ports: - "27017:27017" command: --auth - container_name: "db_mongodb" data: image: mongo:latest volumes: - /var/lib/mongo - - ./setup:/setup command: "true" container_name: "db_mongodb_data" diff --git a/setup/create-admin.js b/setup/create-admin.js deleted file mode 100644 index 9dd33a9..0000000 --- a/setup/create-admin.js +++ /dev/null @@ -1,9 +0,0 @@ -db.createUser( -{ - user: "admin", - pwd: "admin", - roles: [ - { role: "userAdminAnyDatabase", db: "admin" }, - { role: "readWrite", db: "admin" } - ] -}); diff --git a/setup/create-user.js b/setup/create-user.js deleted file mode 100644 index 36c909d..0000000 --- a/setup/create-user.js +++ /dev/null @@ -1,8 +0,0 @@ -db.createUser( -{ - user: "user", - pwd: "user", - roles: [ - { role: "readWrite", db: "myDb" } - ] -});