pipeline {
    agent any
    environment {
          PROJECT_NAME="eurake-dev"
          DATE_TAG = sh(returnStdout: true,script: 'date "+%Y%m%d%H%M"').trim()
          IMAGE_REPOSITORY = "1192.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"
                                // 利用dockerfile生成容器镜像,dockerfile就在当前项目根目录下
                                sh "sudo docker build -t ${env.PROJECT_NAME}:${env.DATE_TAG} ."
                        }
                    }
                }

        stage('PushImage to Harbor') {
            steps {
                    script{
                        //打tag
                        sh "sudo docker tag ${env.PROJECT_NAME}:${env.DATE_TAG} ${env.TAG_PATH}"
                        //将镜像推送到harbor私有库
                        sh "sudo docker push ${env.TAG_PATH}"
                        sh "sudo docker rmi ${env.PROJECT_NAME}:${env.DATE_TAG} "
                    }
            }
        }


        stage('Deploy') {
            steps {
                 sh "sudo sh /opt/shell/Start.sh ${env.PROJECT_NAME} ${env.IMAGE_REPOSITORY} ${env.EXPOSE_PORT} ${env.PROJECT_PORT} ${env.HARBOR_REPO} ${env.DATE_TAG}"
            }
        }

    }
}