Update dockerfile of vfc-gvnfm-vnflcm 67/9867/2
authorfujinhua <fu.jinhua@zte.com.cn>
Fri, 1 Sep 2017 05:57:39 +0000 (13:57 +0800)
committerfujinhua <fu.jinhua@zte.com.cn>
Fri, 1 Sep 2017 06:01:44 +0000 (14:01 +0800)
Add entrypoint to dockerfile

Change-Id: If32fb9ec04a0f492c39d5f61f9481f86e27519cc
Issue-Id: VFC-224
Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
lcm/docker/Dockerfile
lcm/docker/build_image.sh
lcm/docker/docker-entrypoint.sh [new file with mode: 0755]
lcm/docker/instance_init.sh

index e552304..5b847db 100755 (executable)
@@ -27,7 +27,7 @@ RUN apt-get update && \
     apt-get install -y unzip
 
 ADD . /service
-RUN cd /service
+WORKDIR /service
 
 # get binary zip from nexus
 RUN wget -q -O vfc-gvnfm-vnflcm-lcm.zip 'https://nexus.onap.org/service/local/artifact/maven/redirect?r=snapshots&g=org.onap.vfc.gvnfm.vnflcm&a=vfc-gvnfm-vnflcm-lcm&v=LATEST&e=zip' && \
@@ -44,6 +44,5 @@ RUN wget -q -O vfc-gvnfm-vnfres-res.zip 'https://nexus.onap.org/service/local/ar
 EXPOSE 8801
 EXPOSE 3306
 
-WORKDIR /service/vfc/gvnfm/vnflcm/
-
-CMD lcm/docker/instance_init.sh
+WORKDIR /service
+ENTRYPOINT vfc/gvnfm/vnflcm/lcm/docker/docker-entrypoint.sh
index b40f1cf..cd08393 100755 (executable)
@@ -16,7 +16,7 @@ if [ $HTTPS_PROXY ]; then
 fi
 
 function build_vnflcm {
-    docker build ${PROXY_ARGS} --build-arg MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} -t ${ORG}/${PROJECT}/${IMAGE}:${VERSION} -t ${ORG}/${PROJECT}/${IMAGE}:latest .
+    docker build ${PROXY_ARGS} -t ${ORG}/${PROJECT}/${IMAGE}:${VERSION} -t ${ORG}/${PROJECT}/${IMAGE}:latest .
 }
 
 function push_vnflcm {
diff --git a/lcm/docker/docker-entrypoint.sh b/lcm/docker/docker-entrypoint.sh
new file mode 100755 (executable)
index 0000000..90341e8
--- /dev/null
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+if [ -z "$SERVICE_IP" ]; then
+    export SERVICE_IP=`hostname -i`
+fi
+echo "SERVICE_IP=$SERVICE_IP"
+
+if [ -z "$MYSQL_ROOT_PASSWORD" ]; then
+    export MYSQL_ROOT_PASSWORD="root"
+fi
+echo "MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD"
+
+if [ -z "$MSB_ADDR" ]; then
+    echo "Missing required variable MSB_ADDR: Microservices Service Bus address <ip>:<port>"
+    exit 1
+fi
+echo "MSB_ADDR=$MSB_ADDR"
+
+# Wait for MSB initialization
+echo "Wait for MSB initialization"
+for i in {1..20}; do
+    curl -sS -m 1 $MSB_ADDR > /dev/null && break
+    sleep $i
+done
+
+# Configure service based on docker environment variables
+./instance-config.sh
+
+# microservice-specific one-time initialization
+./instance-init.sh
+
+date > init.log
+
+# Start the microservice
+./instance-run.sh
index 03c10a8..f33294d 100755 (executable)
@@ -9,6 +9,7 @@ function start_redis_server {
 }
 
 function start_mysql {
+    su mysql -c /usr/bin/mysqld_safe &
     service mysql start
     # Wait for mysql to initialize; Set mysql root password
     for i in {1..10}; do
@@ -22,23 +23,7 @@ function create_database {
     bash initDB.sh root $MYSQL_ROOT_PASSWORD 3306 127.0.0.1
 }
 
-function edit_configs {
-    cd /service/vfc/gvnfm/vnflcm/lcm/docker
-    bash instance_config.sh
-}
-
-function start_server {
-    cd /service/vfc/gvnfm/vnflcm/lcm
-    bash run.sh
-}
-
-if [ $MYSQL_ROOT_PASSWORD ]; then
-    install_python_libs
-    start_redis_server
-    start_mysql
-    create_database
-    edit_configs
-    start_server
-else
-    echo "MYSQL_ROOT_PASSWORD environment variable not set."
-fi
+install_python_libs
+start_redis_server
+start_mysql
+create_database