diff --git a/deploy/docker/entrypoint.sh b/deploy/docker/entrypoint.sh index 78b0567e4f..a8126977da 100755 --- a/deploy/docker/entrypoint.sh +++ b/deploy/docker/entrypoint.sh @@ -11,24 +11,26 @@ init_env_file() { # Generate new docker.env file when initializing container for first time or in Heroku which does not have persistent volume echo "Generating default configuration file" mkdir -p "$CONF_PATH" - AUTO_GEN_MONGO_PASSWORD=$( + APPSMITH_MONGODB_USER="appsmith" + APPSMITH_MONGODB_PASSWORD=$( tr -dc A-Za-z0-9 "$ENV_PATH" + bash "$TEMPLATES_PATH/docker.env.sh" "$APPSMITH_MONGODB_USER" "$APPSMITH_MONGODB_PASSWORD" "$APPSMITH_ENCRYPTION_PASSWORD" "$APPSMITH_ENCRYPTION_SALT" > "$ENV_PATH" fi printenv | grep -E '^APPSMITH_|^MONGO_' > "$TEMPLATES_PATH/pre-define.env" - - echo 'Load environment configuration' + + + echo "Load environment configuration" set -o allexport . "$ENV_PATH" . "$TEMPLATES_PATH/pre-define.env" @@ -37,7 +39,7 @@ init_env_file() { unset_unused_variables() { # Check for enviroment vairalbes - echo 'Checking environment configuration' + echo "Checking environment configuration" if [[ -z "${APPSMITH_MAIL_ENABLED}" ]]; then unset APPSMITH_MAIL_ENABLED # If this field is empty is might cause application crash fi @@ -64,17 +66,17 @@ unset_unused_variables() { } check_mongodb_uri() { - echo "Check mongodb uri host" + echo "Checking APPSMITH_MONGODB_URI" isUriLocal=1 if [[ $APPSMITH_MONGODB_URI == *"localhost"* || $APPSMITH_MONGODB_URI == *"127.0.0.1"* ]]; then - echo "Use local MongoDB" + echo "Detected local MongoDB" isUriLocal=0 fi } init_mongodb() { if [[ $isUriLocal -eq 0 ]]; then - echo "Init database" + echo "Initializing local database" MONGO_DB_PATH="/appsmith-stacks/data/mongodb" MONGO_LOG_PATH="$MONGO_DB_PATH/log" MONGO_DB_KEY="$MONGO_DB_PATH/key" @@ -88,7 +90,7 @@ init_mongodb() { } init_replica_set() { - echo 'Check initialized database' + echo "Checking initialized database" shouldPerformInitdb=1 for path in \ "$MONGO_DB_PATH/WiredTiger" \ @@ -102,38 +104,37 @@ init_replica_set() { done if [[ $shouldPerformInitdb -gt 0 && $isUriLocal -eq 0 ]]; then - echo 'Init replica set local' + echo "Initializing Replica Set for local database" # Start installed MongoDB service - Dependencies Layer mongod --fork --port 27017 --dbpath "$MONGO_DB_PATH" --logpath "$MONGO_LOG_PATH" - echo "Waiting 10s for mongodb init" + echo "Waiting 10s for MongoDB to start" sleep 10 - bash "/opt/appsmith/templates/mongo-init.js.sh" "appsmith" "$AUTO_GEN_MONGO_PASSWORD" > "/appsmith-stacks/configuration/mongo-init.js" + echo "Creating MongoDB user" + bash "/opt/appsmith/templates/mongo-init.js.sh" "$APPSMITH_MONGODB_USER" "$APPSMITH_MONGODB_PASSWORD" > "/appsmith-stacks/configuration/mongo-init.js" mongo "127.0.0.1/appsmith" /appsmith-stacks/configuration/mongo-init.js - echo "Seeding db done" - echo "Enable replica set" + echo "Enabling Replica Set" mongod --dbpath "$MONGO_DB_PATH" --shutdown || true - echo "Fork process" openssl rand -base64 756 > "$MONGO_DB_KEY" chmod-mongodb-key "$MONGO_DB_KEY" mongod --fork --port 27017 --dbpath "$MONGO_DB_PATH" --logpath "$MONGO_LOG_PATH" --replSet mr1 --keyFile "$MONGO_DB_KEY" --bind_ip localhost - echo "Waiting 10s for mongodb init with replica set" + echo "Waiting 10s for MongoDB to start with Replica Set" sleep 10 mongo "$APPSMITH_MONGODB_URI" --eval 'rs.initiate()' mongod --dbpath "$MONGO_DB_PATH" --shutdown || true fi if [[ $isUriLocal -gt 0 ]]; then - # Check mongodb cloud replica set - echo "Check mongodb cloud replica set" + # Check mongodb cloud Replica Set + echo "Checking Replica Set of external MongoDB" responseStatus=$(mongo "$APPSMITH_MONGODB_URI" --eval "rs.status()" | grep ok | xargs) okString="ok : 1" if [[ $responseStatus == *$okString* ]]; then - echo "Mongodb cloud replica set is enabled" + echo "Mongodb cloud Replica Set is enabled" mongo "$APPSMITH_MONGODB_URI" --eval 'rs.initiate()' else echo -e "\033[0;31m********************************************************************\033[0m" - echo -e "\033[0;31m* Mongodb cloud replica set is not enabled *\033[0m" + echo -e "\033[0;31m* MongoDB Replica Set is not enabled *\033[0m" echo -e "\033[0;31m********************************************************************\033[0m" exit 1 fi diff --git a/deploy/docker/templates/docker.env.sh b/deploy/docker/templates/docker.env.sh index 6dd2612d9d..9ada3997c1 100644 --- a/deploy/docker/templates/docker.env.sh +++ b/deploy/docker/templates/docker.env.sh @@ -1,9 +1,10 @@ #!/bin/bash set -o nounset -MONGO_PASSWORD="$1" -ENCRYPTION_PASSWORD="$2" -ENCRYPTION_SALT="$3" +MONGO_USER="$1" +MONGO_PASSWORD="$2" +ENCRYPTION_PASSWORD="$3" +ENCRYPTION_SALT="$4" cat <