11.jenkins paramter和pipeline结合构建镜像

参数
1.Git_Repository
2.Git_Branch
3.Maven_Version
4.Mvn_Cmd
5.Target_Dir
6.jdk_version
7.docker_repository_name
8.Image_Name
9.Image_tag

Git_Repository

Git_Branch

Maven_Version

Mvn_Cmd

Target_Dir

jdk_version

docker_repository_name

Image_Name

Image_tag

pipeline {
    agent any
    

    stages {
        stage('git clone') {
            steps {
                // pull代码
            git branch: '${Git_Branch}', credentialsId: '4e096dfc-07eb-47bb-9206-f96147559654', url: '${Git_Repository}'
            }
        }
        stage('build package') {
            steps {
                // mvn编译
            sh '/var/lib/jenkins/${Maven_Version}/bin/${Mvn_Cmd}'
            }
        }
        stage('build docker image') {
            environment {
               Package_Name = "${sh(script:'/server/scripts/get_java_info.sh', returnStdout: true)}"
            }
               
            steps {
                //write Dockerfile
             writeFile file: './Dockerfile', text: """FROM ${Java_Docker_Image_Base}
ADD ${Target_Dir}/$Package_Name /opt/
CMD [\'java\',\'-jar\','/opt/${Package_Name}']
"""
             sh 'docker build -t harbor.rongbiz.net/${Repository_name}/${Image_Name}:${Image_Tag}  .'
            }
        }
        stage('push docker image') {
            steps {
              sh 'docker push harbor.rongbiz.net/${Repository_name}/${Image_Name}:${Image_Tag}' 
              sh 'echo harbor.rongbiz.net/${Repository_name}/${Image_Name}:${Image_Tag}'
            }
        }
        stage('set message to wechat') {
            steps {
             // One or more steps need to be included within each condition's block.
             qyWechatNotification mentionedId: 'ALL', mentionedMobile: '', webhookUrl: 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=59227166-2d6d-47bd-9c9a-6b6ce317cdef'
            }
        }
    }
}

取jar包info信息的shell脚本

cat /server/scripts/get_java_info.sh
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/var/lib/jenkins/${Maven_Version}/bin
#PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/var/lib/jenkins/maven-3.8.6/bin
artifactId=$(mvn help:evaluate -Dexpression=project.artifactId |egrep -v "[INFO]")
version=$(mvn help:evaluate -Dexpression=project.version |egrep -v "[INFO]")
packaging=$(mvn help:evaluate -Dexpression=project.packaging |egrep -v "[INFO]")
echo $artifactId-$version.$packaging|xargs echo -n
posted @ 2022-11-23 17:14  老夫聊发少年狂88  阅读(104)  评论(0编辑  收藏  举报