Fix wfengine docker build issue
[vfc/nfvo/wfengine.git] / activiti-extension / src / main / docker / activiti-docker-build_image.sh
index bc53fbd..8a61f09 100644 (file)
@@ -8,17 +8,47 @@ cd ${DOCKER_BUILD_DIR}
 BUILD_ARGS="--no-cache"
 ORG="onap"
 # VERSION="1.0.0"
-VERSION="1.0.0-SNAPSHOT"
+DOCKER_VER="1.1.0"
+VERSION="${DOCKER_VER}-SNAPSHOT"
 PROJECT="vfc"
 IMAGE="wfengine-activiti"
 DOCKER_REPOSITORY="nexus3.onap.org:10003"
 IMAGE_NAME="${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/${IMAGE}"
+TIMESTAMP=$(date +"%Y%m%dT%H%M%S")
+
+if [ -z $NEXUS_REPOS_URL ]; then
+  NEXUS_REPOS_URL="https://nexus.onap.org"
+fi
 
 POM_DIR="../../../"
 cd ${POM_DIR}
-# VERSION=$(printf 'VER\t${project.version}'|mvn help:evaluate|grep '^VER'|cut -f2|echo)
-# VERSION=$(printf 'VER\t${project.version}'|mvn help:evaluate)
+
+mvncmd=$(whereis mvn | grep ^mvn |awk '{print $2}')
+if [[ 1$mvncmd != 1 ]]; then
+  echo $mvncmd
+elif [ $MVN ]; then
+  echo MVN
+  mvncmd=$MVN
+elif [ $M2_HOME ]; then
+  echo M2_HOME
+  mvncmd=$M2_HOME/bin/mvn
+elif [ -f "/w/tools/hudson.tasks.Maven_MavenInstallation/mvn33/bin/mvn" ]; then
+  echo /w/tools/hudson.tasks.Maven_MavenInstallation/mvn33/bin/mvn
+  mvncmd="/w/tools/hudson.tasks.Maven_MavenInstallation/mvn33/bin/mvn"
+elif [ -f "/usr/share/maven/bin/mvn" ]; then
+  mvncmd="/usr/share/maven/bin/mvn"
+else
+  echo "Maven is not installed, mvncmd=$mvncmd"
+  exit 1
+fi
+echo "mvncmd=${mvncmd}"
+
+pwd
+#VERSION=$(printf 'VER\t${project.version}\n0'|$mvncmd help:evaluate)
+#echo "0VERSION=${VERSION}"
+VERSION=$(printf 'VER\t${project.version}'|$mvncmd help:evaluate|grep '^VER'|cut -f2)
 echo "VERSION=${VERSION}"
+DOCKER_VER=${VERSION}
 
 cd ${DOCKER_BUILD_DIR}
 if [[ $VERSION != *-SNAPSHOT ]]; then
@@ -46,11 +76,20 @@ if [ $https_proxy ]; then
 fi
 echo "CURLPROXY=${CURLPROXY}"
 
-echo "download Tomcat 8.5.20"
-#curl "${CURLPROXY}" -m 300 -O -J -L  "http://mirrors.shuosc.org/apache/tomcat/tomcat-8/v8.5.20/bin/apache-tomcat-8.5.20.tar.gz"
-wget  "http://mirrors.shuosc.org/apache/tomcat/tomcat-8/v8.5.20/bin/apache-tomcat-8.5.20.tar.gz"
-tar -zxf apache-tomcat-8.5.20.tar.gz
-mv apache-tomcat-8.5.20 apache-tomcat
+rm -Rf activiti-5.2.0/
+rm -Rf apache-tomcat/
+rm -Rf temp/
+rm -Rf build/
+rm -Rf activiti-extension*.jar
+rm -Rf activiti-rest.war
+mkdir build
+cp -Rf ./Dockerfile ./build
+
+echo "download Tomcat 8.5.23"
+#curl "${CURLPROXY}" -m 300 -O -J -L  "${NEXUS_REPOS_URL}/content/repositories/central/org/apache/tomcat/tomcat/8.5.23/tomcat-8.5.23.tar.gz"
+wget  "${NEXUS_REPOS_URL}/content/repositories/central/org/apache/tomcat/tomcat/8.5.23/tomcat-8.5.23.tar.gz"
+tar -zxf tomcat-8.5.23.tar.gz
+mv apache-tomcat-8.5.23 ./build/apache-tomcat
 
 echo "download Activiti 5.22.0"
 wget "https://github.com/Activiti/Activiti/releases/download/activiti-5.22.0/activiti-5.22.0.zip"
@@ -59,30 +98,81 @@ rm -Rf ./activiti-5.22.0/
 #sudo apt-get install p7zip-full
 #7za x activiti-5.22.0.zip
 
-unzip -o -q activiti-5.22.0.zip
-#unzip -o -q activiti-5.22.0.zip "activiti-5.22.0/wars/activiti-rest.war" -d ./
+#unzip -o -q activiti-5.22.0.zip
+unzip -o -q activiti-5.22.0.zip "activiti-5.22.0/wars/activiti-rest.war" -d ./
 mv activiti-5.22.0/wars/activiti-rest.war .
 
 echo "download activiti-extension ${VERSION}"
-#curl "${CURLPROXY}" -m 600 -O -J -L  "https://nexus.onap.org/service/local/artifact/maven/content?r=${NEXUSREPONAME}&g=org.onap.vfc.nfvo.wfengine&a=activiti-extension&e=jar&v=${VERSION}"
-wget --output-file=activiti-extension.jar "https://nexus.onap.org/service/local/artifact/maven/content?r=${NEXUSREPONAME}&g=org.onap.vfc.nfvo.wfengine&a=activiti-extension&e=jar&v=${VERSION}"
+#curl "${CURLPROXY}" -m 600 -O -J -L  "${NEXUS_REPOS_URL}/service/local/artifact/maven/content?r=${NEXUSREPONAME}&g=org.onap.vfc.nfvo.wfengine&a=activiti-extension&e=jar&v=${VERSION}"
+#wget -O activiti-extension.jar "${NEXUS_REPOS_URL}/service/local/artifact/maven/content?r=${NEXUSREPONAME}&g=org.onap.vfc.nfvo.wfengine&a=activiti-extension&e=jar&v=${VERSION}"
+#wget -O activiti-extension.jar "${NEXUS_REPOS_URL}/service/local/artifact/maven/content?r=snapshots&g=org.onap.vfc.nfvo.wfengine&a=activiti-extension&e=jar&v=${VERSION}-SNAPSHOT"
+wget -O activiti-extension.jar "${NEXUS_REPOS_URL}/service/local/artifact/maven/content?r=${NEXUSREPONAME}&g=org.onap.vfc.nfvo.wfengine&a=activiti-extension&e=jar&v=${VERSION}"
 rm -Rf ./temp/
 mkdir -p ./temp/WEB-INF/lib/
 cp -f activiti-extension*.jar ./temp/WEB-INF/lib/activiti-extension.jar 
+cp -f swagger.json ./temp/ 
+
+
+echo "download jackson-annotations 2.5.1"
+wget -O jackson-annotations-2.2.3.jar "${NEXUS_REPOS_URL}/service/local/artifact/maven/content?r=central&g=com.fasterxml.jackson.core&a=jackson-annotations&e=jar&v=2.5.1"
+cp -f jackson-annotations-2.2.3.jar ./temp/WEB-INF/lib/jackson-annotations-2.2.3.jar
+
+echo "download jackson-core 2.5.1"
+wget -O jackson-core-2.2.3.jar "${NEXUS_REPOS_URL}/service/local/artifact/maven/redirect?r=central&g=com.fasterxml.jackson.core&a=jackson-core&e=jar&v=2.5.1"
+cp -f jackson-core-2.2.3.jar ./temp/WEB-INF/lib/jackson-core-2.2.3.jar
+
+echo "download jackson-databind 2.5.1"
+wget -O jackson-databind-2.2.3.jar "${NEXUS_REPOS_URL}/service/local/artifact/maven/content?r=central&g=com.fasterxml.jackson.core&a=jackson-databind&e=jar&v=2.5.1"
+cp -f jackson-databind-2.2.3.jar ./temp/WEB-INF/lib/jackson-databind-2.2.3.jar
 
 echo "update activiti-rest.war"
-$JAVA_HOME/bin/jar uvf activiti-rest.war -C ./temp .  >/dev/null 2>&1
-cp activiti-rest.war ./apache-tomcat/webapps/
+jarcmd=$(whereis jar | grep ^jar |awk '{print $2}')
+if [ 1$jarcmd != 1 ]; then
+  echo $jarcmd
+elif [ $JAVA_HOME ]; then
+  if [ -f "$JAVA_HOME/bin/jar"]; then
+    jarcmd=$JAVA_HOME/bin/jar
+  elif [ -f "$JAVA_HOME/../bin/jar"]; then
+    jarcmd=$JAVA_HOME/../bin/jar
+  else
+    echo "Jar is not installed, JAVA_HOME=$JAVA_HOME"
+    exit 1
+  fi
+elif [ -f "/usr/lib/jvm/java-8-openjdk-amd64/bin/jar" ]; then
+  jarcmd="/usr/lib/jvm/java-8-openjdk-amd64/bin/jar"
+elif [ -f "/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/jar" ]; then
+  jarcmd="/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/jar"
+else
+  echo "Jar is not installed, jarcmd=$jarcmd"
+  exit 1
+fi
+echo "jarcmd=${jarcmd}"
+
+$jarcmd -uvf activiti-rest.war -C ./temp/ ./
+
+#.  >/dev/null 2>&1  -C ./temp
+cp activiti-rest.war ./build/apache-tomcat/webapps/
+cp -Rf bin/* ./build/apache-tomcat/bin
 
 function build_image {
     echo "Start build docker image: ${IMAGE_NAME}"
-    docker build ${BUILD_ARGS} -t ${IMAGE_NAME}:${VERSION} -t ${IMAGE_NAME}:latest .
+    docker build ${BUILD_ARGS} -t ${IMAGE_NAME}:latest ./build
+}
+
+function push_image_tag {
+    TAG_NAME=$1
+    echo "Start push ${TAG_NAME}"
+    docker tag ${IMAGE_NAME}:latest ${TAG_NAME}
+    docker push ${TAG_NAME}
 }
 
 function push_image {
-    echo "Start push docker image: ${IMAGE_NAME}"
-    docker push ${IMAGE_NAME}:${VERSION}
+    echo "Start push ${IMAGE_NAME}:latest"
     docker push ${IMAGE_NAME}:latest
+    
+    push_image_tag ${IMAGE_NAME}:${DOCKER_VER}-SNAPSHOT-latest
+    push_image_tag ${IMAGE_NAME}:${DOCKER_VER}-STAGING-latest
+    push_image_tag ${IMAGE_NAME}:${DOCKER_VER}-STAGING-${TIMESTAMP}
 }
 
 build_image