pipeline {
    agent any
    environment {
          PROJECT_NAME="eurake-dev"
          DATE_TAG = sh(returnStdout: true,script: 'date "+%Y%m%d%H%M"').trim()
          IMAGE_REPOSITORY = "192.168.3.2:85"
          EXPOSE_PORT = "8761"  //容器端口
          PROJECT_PORT = "8761"    //外部端口
          HARBOR_REPO = "testrepo"
          TAG_PATH="${env.IMAGE_REPOSITORY}/${env.HARBOR_REPO}/${env.PROJECT_NAME}:${env.DATE_TAG}"
         }
    tools{
           maven 'maven3.6.2'
           jdk 'jdk1.8'
         }
      stages {
        stage('maven clear AND build') {
                           steps {
                               script{
                                   sh "mvn clean install -DskipTests"
                           }
                       }
                   }

        stage('rm container and rmi images') {
                      steps {
                          sh "sudo sh /opt/shell/step1.sh ${env.PROJECT_NAME} "
                       }
                }

        stage('build') {
                          steps {
                              script{
                                  // 利用dockerfile生成容器镜像，dockerfile就在当前项目根目录下
                                  sh "sudo docker build -t ${env.PROJECT_NAME}:${env.DATE_TAG} ."
                          }
                      }
                  }

         stage('tag') {
              steps {
                      script{
                          //打tag
                           sh "sudo docker tag ${env.PROJECT_NAME}:${env.DATE_TAG} ${env.TAG_PATH}"
                           sh "sudo docker rmi ${env.PROJECT_NAME}:${env.DATE_TAG} "
                      }
              }
          }

        stage('PushImage to Harbor') {
              steps {
                      script{
                          //将镜像推送到harbor私有库
                          sh "sudo docker push ${env.TAG_PATH}"
                      }
              }
          }
           stage('run') {
                      steps {
                          sh "sudo sh /opt/shell/step2.sh ${env.PROJECT_NAME} ${env.IMAGE_REPOSITORY} ${env.EXPOSE_PORT} ${env.PROJECT_PORT} ${env.HARBOR_REPO} ${env.DATE_TAG}"
                       }
                }
  }
}