[VAL-80] Lynis
[validation.git] / docker / ui / deploy.sh
1 #!/bin/bash
2 #
3 # Copyright (c) 2019 AT&T Intellectual Property.  All other rights reserved.
4 #
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 #     http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16
17 set -ex
18
19 # Container name
20 CONTAINER_NAME="akraino-validation-ui"
21 # Image data
22 REGISTRY=akraino
23 NAME=validation
24 TAG_PRE=ui
25 TAG_VER=latest
26 # Container input parameters
27 MYSQL_USER="akraino"
28 MYSQL_PASSWORD=""
29 JENKINS_URL="https://jenkins.akraino.org/"
30 JENKINS_USERNAME="demo"
31 JENKINS_USER_PASSWORD="demo"
32 JENKINS_JOB_NAME="validation"
33 DB_IP_PORT=""
34 NEXUS_PROXY=""
35 JENKINS_PROXY=""
36 CERTDIR=$(pwd)
37 ENCRYPTION_KEY=""
38 UI_ADMIN_PASSWORD=""
39 TRUST_ALL="false"
40 USE_NETWORK_HOST="false"
41
42 while [ $# -gt 0 ]; do
43    if [[ $1 == *"--"* ]]; then
44         v="${1/--/}"
45         declare $v="$2"
46    fi
47    shift
48 done
49
50 if [ -z "$DB_IP_PORT" ]
51   then
52     echo "ERROR: You must specify the database IP and port"
53     exit 1
54 fi
55
56 if [ -z "$MYSQL_PASSWORD" ]
57   then
58     echo "ERROR: You must specify the mysql user password"
59     exit 1
60 fi
61
62 if [ -z "$ENCRYPTION_KEY" ]
63   then
64     echo "ERROR: You must specify the encryption key"
65     exit 1
66 fi
67
68 if [ -z "$UI_ADMIN_PASSWORD" ]
69   then
70     echo "ERROR: You must specify the UI admin password"
71     exit 1
72 fi
73
74 echo "Note: If there is a password already stored in database, the supplied UI_ADMIN_PASSWORD will be ignored."
75
76 IMAGE="$REGISTRY"/"$NAME":"$TAG_PRE"-"$TAG_VER"
77 if [[ $USE_NETWORK_HOST = "true" ]]
78   then
79     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
80   else
81     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
82 fi
83 sleep 10