diff options
-rwxr-xr-x | lcm/docker/Dockerfile | 7 | ||||
-rwxr-xr-x | lcm/docker/build_image.sh | 2 | ||||
-rwxr-xr-x | lcm/docker/docker-entrypoint.sh | 35 | ||||
-rwxr-xr-x | lcm/docker/instance_init.sh | 25 |
4 files changed, 44 insertions, 25 deletions
diff --git a/lcm/docker/Dockerfile b/lcm/docker/Dockerfile index e552304e..5b847db3 100755 --- a/lcm/docker/Dockerfile +++ b/lcm/docker/Dockerfile @@ -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 diff --git a/lcm/docker/build_image.sh b/lcm/docker/build_image.sh index b40f1cf7..cd083932 100755 --- a/lcm/docker/build_image.sh +++ b/lcm/docker/build_image.sh @@ -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 index 00000000..90341e83 --- /dev/null +++ b/lcm/docker/docker-entrypoint.sh @@ -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 diff --git a/lcm/docker/instance_init.sh b/lcm/docker/instance_init.sh index 03c10a80..f33294db 100755 --- a/lcm/docker/instance_init.sh +++ b/lcm/docker/instance_init.sh @@ -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 |