[UI] Embed files inside image
[validation.git] / docker / ui / deploy.sh
index fef0bed..8c9a231 100755 (executable)
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-CONTAINER_NAME="validation-ui"
+set -ex
+
+# Container name
+CONTAINER_NAME="akraino-validation-ui"
+# Image data
 REGISTRY=akraino
 NAME=validation
-TAG_PRE=`echo "${PWD##*/}"`
+TAG_PRE=ui
 TAG_VER=latest
-HOST_ARCH=amd64
-postgres_db_user_pwd=""
-jenkins_url=""
-jenkins_user_name=""
-jenkins_user_pwd=""
-jenkins_job_name=""
-nexus_results_url=""
-proxy_ip=""
-proxy_port=""
+# Container input parameters
+MYSQL_USER="akraino"
+MYSQL_PASSWORD=""
+JENKINS_URL="https://jenkins.akraino.org/"
+JENKINS_USERNAME="demo"
+JENKINS_USER_PASSWORD="demo"
+JENKINS_JOB_NAME="validation"
+DB_IP_PORT=""
+NEXUS_PROXY=""
+JENKINS_PROXY=""
+CERTDIR=$(pwd)
+ENCRYPTION_KEY=""
+UI_ADMIN_PASSWORD=""
+TRUST_ALL="false"
+USE_NETWORK_HOST="false"
 
-# get the architecture of the host
-if [ "`uname -m`" = "aarch64" ]
-  then
-    HOST_ARCH=arm64
-fi
-
-for ARGUMENT in "$@"
-do
-    KEY=$(echo $ARGUMENT | cut -f1 -d=)
-    VALUE=$(echo $ARGUMENT | cut -f2 -d=)
-    case "$KEY" in
-            REGISTRY)              REGISTRY=${VALUE} ;;
-            NAME)    NAME=${VALUE} ;;
-            TAG_VER)    TAG_VER=${VALUE} ;;
-            postgres_db_user_pwd)    postgres_db_user_pwd=${VALUE} ;;
-            jenkins_url)    jenkins_url=${VALUE} ;;
-            jenkins_user_name)    jenkins_user_name=${VALUE} ;;
-            jenkins_user_pwd)    jenkins_user_pwd=${VALUE} ;;
-            jenkins_job_name)    jenkins_job_name=${VALUE} ;;
-            nexus_results_url)    nexus_results_url=${VALUE} ;;
-            proxy_ip)    proxy_ip=${VALUE} ;;
-            proxy_port)    proxy_port=${VALUE} ;;
-            *)
-    esac
+while [ $# -gt 0 ]; do
+   if [[ $1 == *"--"* ]]; then
+        v="${1/--/}"
+        declare $v="$2"
+   fi
+   shift
 done
 
-if [ -z "$postgres_db_user_pwd" ]
+if [ -z "$DB_IP_PORT" ]
   then
-    echo "ERROR: You must specify the postgresql root user password"
+    echo "ERROR: You must specify the database IP and port"
     exit 1
 fi
 
-if [ -z "$jenkins_url" ]
+if [ -z "$MYSQL_PASSWORD" ]
   then
-    echo "ERROR: You must specify the Jenkins Url"
+    echo "ERROR: You must specify the mysql user password"
     exit 1
 fi
 
-if [ -z "$jenkins_user_name" ]
+if [ -z "$ENCRYPTION_KEY" ]
   then
-    echo "ERROR: You must specify the Jenkins username"
+    echo "ERROR: You must specify the encryption key"
     exit 1
 fi
 
-if [ -z "$jenkins_user_pwd" ]
+if [ -z "$UI_ADMIN_PASSWORD" ]
   then
-    echo "ERROR: You must specify the Jenkins user password"
+    echo "ERROR: You must specify the UI admin password"
     exit 1
 fi
 
-if [ -z "$jenkins_job_name" ]
-  then
-    echo "ERROR: You must specify the Jenkins job name"
-    exit 1
-fi
+echo "Note: If there is a password already stored in database, the supplied UI_ADMIN_PASSWORD will be ignored."
 
-if [ -z "$nexus_results_url" ]
+IMAGE="$REGISTRY"/"$NAME":"$TAG_PRE"-"$TAG_VER"
+if [[ $USE_NETWORK_HOST = "true" ]]
   then
-    echo "ERROR: You must specify the Nexus Url"
-    exit 1
+    docker run --detach --name $CONTAINER_NAME --network="host" -v "$CERTDIR/bluval.key:/usr/local/tomcat/bluval.key" -v "$CERTDIR/bluval.crt:/usr/local/tomcat/bluval.crt" -e DB_IP_PORT="$DB_IP_PORT" -e MYSQL_USER="$MYSQL_USER" -e MYSQL_PASSWORD="$MYSQL_PASSWORD" -e JENKINS_URL="$JENKINS_URL" -e JENKINS_USERNAME="$JENKINS_USERNAME" -e JENKINS_USER_PASSWORD="$JENKINS_USER_PASSWORD" -e JENKINS_JOB_NAME="$JENKINS_JOB_NAME" -e NEXUS_PROXY="$NEXUS_PROXY" -e JENKINS_PROXY="$JENKINS_PROXY" -e ENCRYPTION_KEY="$ENCRYPTION_KEY" -e UI_ADMIN_PASSWORD="$UI_ADMIN_PASSWORD" -e TRUST_ALL="$TRUST_ALL" $IMAGE
+  else
+    docker run --detach --name $CONTAINER_NAME -v "$CERTDIR/bluval.key:/usr/local/tomcat/bluval.key" -v "$CERTDIR/bluval.crt:/usr/local/tomcat/bluval.crt" -e DB_IP_PORT="$DB_IP_PORT" -e MYSQL_USER="$MYSQL_USER" -e MYSQL_PASSWORD="$MYSQL_PASSWORD" -e JENKINS_URL="$JENKINS_URL" -e JENKINS_USERNAME="$JENKINS_USERNAME" -e JENKINS_USER_PASSWORD="$JENKINS_USER_PASSWORD" -e JENKINS_JOB_NAME="$JENKINS_JOB_NAME" -e NEXUS_PROXY="$NEXUS_PROXY" -e JENKINS_PROXY="$JENKINS_PROXY" -e ENCRYPTION_KEY="$ENCRYPTION_KEY" -e UI_ADMIN_PASSWORD="$UI_ADMIN_PASSWORD" -e TRUST_ALL="$TRUST_ALL" $IMAGE
 fi
-
-IMAGE="$REGISTRY"/"$NAME":"$TAG_PRE"-"$HOST_ARCH"-"$TAG_VER"
-docker run --name $CONTAINER_NAME --network="host" -it --rm -e postgres_db_user_pwd="$postgres_db_user_pwd" -e jenkins_url="$jenkins_url" -e jenkins_user_name="$jenkins_user_name" -e jenkins_user_pwd="$jenkins_user_pwd" -e jenkins_job_name="$jenkins_job_name" -e nexus_results_url="$nexus_results_url" -e proxy_ip="$proxy_ip" -e proxy_port="$proxy_port" $IMAGE
 sleep 10