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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)