9b01804a2fddf6d43a5610b2009af030605ab53c
[vfc/gvnfm/vnflcm.git] / lcm / docker / docker-entrypoint.sh
1 #!/bin/bash
2
3 if [ -z "$SERVICE_IP" ]; then
4     export SERVICE_IP=`hostname -i`
5 fi
6 echo "SERVICE_IP=$SERVICE_IP"
7
8 if [ -z "$MSB_ADDR" ]; then
9     echo "Missing required variable MSB_ADDR: Microservices Service Bus address <ip>:<port>"
10     exit 1
11 fi
12 echo "MSB_ADDR=$MSB_ADDR"
13
14 if [ -z "$MYSQL_ADDR" ]; then
15     echo "Missing required variable MYSQL_ADDR: <ip>:<port>"
16     exit 1
17 fi
18 echo "MYSQL_ADDR=$MYSQL_ADDR"
19
20 # Wait for MSB initialization
21 echo "Wait for MSB initialization"
22 for i in {1..5}; do
23     curl -sS -m 1 $MSB_PROTO://$MSB_ADDR/msb -k > /dev/null
24     res=$?
25     if [ $res -ne 0 ]; then
26         break
27     fi
28     sleep $i
29 done
30
31 # Wait for DB initialization
32 echo "Wait for DB initialization"
33 for i in {1..5}; do
34     mysql -u$MYSQL_ROOT_USER -p$MYSQL_ROOT_PASSWORD -h`echo $MYSQL_ADDR | cut -d: -f 1` -P`echo $MYSQL_ADDR | cut -d: -f 2` -e "show databases;" > /dev/null && echo "DB initialization completed" && break
35     sleep $i && echo "`echo $MYSQL_ADDR | cut -d: -f 1` connection failed"
36 done
37
38 # Configure service based on docker environment variables
39 vfc/gvnfm/vnflcm/lcm/docker/instance_config.sh
40
41 # microservice-specific one-time initialization
42 vfc/gvnfm/vnflcm/lcm/docker/instance_init.sh
43
44 date > init.log
45
46 # Start the microservice
47 vfc/gvnfm/vnflcm/lcm/docker/instance_run.sh