jydg 发表于 2018-1-8 20:16:01

[ci]jenkins构建容器项目java-helloworld-非docker plugin模式

#!/bin/bash  ############################################
  # this script function is :
  # deploy new docker container
  #
  # USER      YYYY-MM-DD - ACTION
  # maotai    2018-01-25 - CREATED
  #
  ############################################
  parasnum=5
  # function
  help_msg()
  {
  cat << help
  +----------------------------------------------------+
  + Error Cause:
  + you enter $# parameters
  + the total paramenter number must be $parasnum
  + 1st :DOCKER_NAME
  + 2nd :PROJECT_NAME
  + 3rd :PROJECT_VERSION
  + 4th :SOURCE_PORT
  + 5th :DESTINATION_PORT
  +----------------------------------------------------+
  help
  }
  # ----------------------------------------------------
  # Check parameter number
  # ----------------------------------------------------
  if [ $# -ne ${parasnum} ]
  then
  help_msg
  exit
  fi
  # ----------------------------------------------------
  # Initialize the parameter.
  # ----------------------------------------------------
  DOCKER_NAME=$1
  PROJECT_NAME=$2
  PROJ_VERSION=$3
  SPORT=$4
  DPORT=$5
  PROJ_VERSION=${PROJ_VERSION/&quot;origin/&quot;/&quot;&quot;}
  DOCKER_FILE=&quot;/data/dockerfiles/${DOCKER_NAME}/Dockerfile&quot;
  DOCKER_FILE_DIR=/data/dockerfiles/${DOCKER_NAME}
  if [ ! -d ${DOCKER_FILE_DIR} ]; then
  mkdir -p ${DOCKER_FILE_DIR}
  fi
  # ----------------------------------------------------
  # check docker images
  # ----------------------------------------------------
  DOCKER_IMAGE=`/usr/bin/docker images | grep ${DOCKER_NAME} | awk -F ' ' '{print $3}'`
  if [ -n &quot;${DOCKER_IMAGE}&quot; ]; then
  # check docker container
  for dc in `/usr/bin/docker ps -a | grep ${DOCKER_NAME} | awk -F &quot; &quot; '{print $1}'`
  do
  echo &quot;Stop container: ${dc}&quot;
  /usr/bin/docker stop ${dc}
  # delete while docker container was exists
  echo &quot;##Delete exists Container_Id: &quot;${dc}
  /usr/bin/docker rm ${dc}
  done
  # delete while docker image was exists
  echo &quot;##Delete exists Image: &quot;${DOCKER_IMAGE}
  /usr/bin/docker rmi ${DOCKER_IMAGE}
  fi
  echo &quot;&quot;
  # ----------------------------------------------------
  # Init dockerfile
  # ----------------------------------------------------
  echo &quot;**Init dockerfile start: &quot;${DOCKER_FILE}
  echo &quot;FROM tomcat&quot; > ${DOCKER_FILE}
  echo 'MAINTAINER maotai &quot;maotai@sina.com&quot;' >> ${DOCKER_FILE}
  echo &quot;ADD *.war /usr/local/tomcat/webapps/${PROJECT_NAME}.war&quot; >> ${DOCKER_FILE}
  echo &quot;EXPOSE 8080&quot; >> ${DOCKER_FILE}
  echo &quot;CMD /usr/local/tomcat/bin/startup.sh && tail -f /usr/local/tomcat/logs/catalina.out&quot; >> ${DOCKER_FILE}
  cat ${DOCKER_FILE}
  echo &quot;**Init dockerfile end.&quot;
  # ----------------------------------------------------
  # Build dockerfile
  # ----------------------------------------------------
  cd ${DOCKER_FILE_DIR}
  rm *.war -rf
  mv /data/dockerfiles/war/${DOCKER_NAME}/*.war ./
  echo &quot;&quot;
  echo &quot;##Build dockerfile for &quot;${DOCKER_NAME}
  /usr/bin/docker build -t ${DOCKER_NAME}:${PROJ_VERSION} .
  # ----------------------------------------------------
  # Run docker container
  # ----------------------------------------------------
  echo &quot;&quot;
  echo &quot;##Running docker container: &quot;${DOCKER_NAME}
  /usr/bin/docker run --name ${DOCKER_NAME}_d1 -d -p ${SPORT}:${DPORT} ${DOCKER_NAME}:${PROJ_VERSION}
  #/usr/bin/docker run ${cmd}
  echo &quot;&quot;
页: [1]
查看完整版本: [ci]jenkins构建容器项目java-helloworld-非docker plugin模式