jenkins+docker 一键部署

pipeline {
   agent any

   stages {
      stage('GIT CHECK') {
         steps {
 
checkout([$class: 'GitSCM', branches: [[name: '$branch']], extensions: [], userRemoteConfigs: [[credentialsId: '47925edc-bd2d-488b-8386-34e1a31c93d3', url: 'http://192.168.1.1/demo/demo.git']]])
               checkout([$class: 'GitSCM', branches: [[name: '$bracnh']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'CloneOption', noTags: true, shallow: true, depth: 1, honorRefspec:true]], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '47925edc-bd2d-488b-8386-34e1a31c93d3,refspec: '+refs/heads/$branch:refs/remotes/origin/$branch', url: 'http://192.168.1.1/demo/demo.git']]])
         }
         
      }
        stage('MAVEN BUILD') {
         steps {

    sh '''
    cd /root/.jenkins/workspace/demo
    mvn clean package  -Dmaven.test.skip=true 
      mv target/*.jar  /data/apps/demo/app.jar
'''
         }
         
      }  
   stage(' DOCKER RUNING') {
         steps {

    sh '''

   JAR_DIR=/data/apps/demo

  DOCKER_NAME=demo

DOCKER_FILE="/data/dockerfiles/${DOCKER_NAME}/Dockerfile"
DOCKER_FILE_DIR=/data/dockerfiles/${DOCKER_NAME}
if [ ! -d ${DOCKER_FILE_DIR} ]; then
        mkdir -p ${DOCKER_FILE_DIR}
fi

DOCKER_IMAGE=`/usr/bin/docker images | grep ${DOCKER_NAME} | awk -F ' ' '{print $3}'`
if [ -n "${DOCKER_IMAGE}" ]; then
        # check docker container
        for dc in `/usr/bin/docker ps -a | grep ${DOCKER_NAME} | awk -F " " '{print $1}'`
        do
                echo "Stop container: ${dc}"
                /usr/bin/docker stop ${dc}
                # delete while docker container was exists
                echo "##Delete exists Container_Id: "${dc}
                /usr/bin/docker rm ${dc}
        done

        # delete while docker image was exists
        echo "##Delete exists Image: "${DOCKER_IMAGE}
        /usr/bin/docker rmi ${DOCKER_IMAGE} 
fi
echo ""


echo "**Init dockerfile start***"
echo "FROM openjdk:8" > ${DOCKER_FILE}
echo 'MAINTAINER  "jinyulinlang@126.com"' >> ${DOCKER_FILE}

echo "RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone" >> ${DOCKER_FILE}
echo "EXPOSE 8886" >> ${DOCKER_FILE}
echo "ADD *.jar /home/app.jar" >> ${DOCKER_FILE}

echo "VOLUME [/home]" >> ${DOCKER_FILE}

echo "WORKDIR /home" >> ${DOCKER_FILE}

echo "USER  root" >> ${DOCKER_FILE}

echo 'ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/home/app.jar","--spring.profiles.active=prod","-Xms512m -Xmx512m  -XX:MaxNewSize=256m" ]' >> ${DOCKER_FILE}

cat ${DOCKER_FILE}
echo "**Init dockerfile end."

 echo " ...docker build start ...."

   cd    ${JAR_DIR}

 /usr/bin/docker build  -f ${DOCKER_FILE}  -t ${DOCKER_NAME}  . 

  echo " ...docker build end ...."

    echo " ...docker container  start ...."

 /usr/bin/docker run  -it --name ${DOCKER_NAME} -p 8886:8886 -v ${JAR_DIR}/logs:/home/logs -v /usr/local/data:/usr/local/data  -d   ${DOCKER_NAME}

   
   
'''
         }
         
      } 
   }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值