编辑
2025-09-22
Devops
00
请注意,本文编写于 45 天前,最后修改于 29 天前,其中某些信息可能已经过时。

目录

一、Jenkins创建任务
二、流水线语法生成
二、但这种方式在配置代码里面改太麻烦,直接使用GIT仓库的形式进行
三、maven编译构建
四、质量代码的检测
五、构建docker镜像
六、推送镜像到Harbor
七、连接目标服务器拉取镜像进行启动

一、Jenkins创建任务

image.png

选择一个列子测试 image.png 执行流水线后可以看到,输出了hello的列子 image.png

js
pipeline { agent any stages { stage('1.拉取git仓库代码') { steps { echo '拉取git仓库代码成功' } } stage('2.通过Maven构建项目') { steps { echo '通过Maven构建项目成功' } } stage('3.质量代码检测') { steps { echo '质量代码检测成功' } } stage('4.Docker制作镜像') { steps { echo 'docker制作镜像成功' } } stage('5.自定义镜像推送Harbor') { steps { echo '自定义镜像推送Harbor成功' } } stage('6.通知目标服务器拉取镜像启动') { steps { echo '通知目标服务器拉取镜像启动成功' } } } }

二、流水线语法生成

image.png

image.png

image.png

最后吧git仓库生成的代码粘贴但这里就行了 image.png

二、但这种方式在配置代码里面改太麻烦,直接使用GIT仓库的形式进行

image.png

添加一个名为Jenkinsfile的文件 image.png

然后回到Jenkins更改方式,把gitlab仓库地址填上 image.png

然后tag标签版本控制也添加上

image.png

gitlab这里改成变量的tag控制版本

image.png

三、maven编译构建

image.png

生成脚本 image.png

然后放到gitlab的Jenkinsfile中

js
sh '/var/jenkins_home/maven/bin/mvn clean package -DskipTests'

image.png

四、质量代码的检测

js
/var/jenkins_home/sonar-scanner-4.8.0.2856-linux/bin/sonar-scanner -Dsonar.sources=./ -Dsonar.projectname=${JOB_NAME} -Dsonar.projectKey=${JOB_NAME} -Dsonar.java.binaries=./target/ -Dsonar.login=178e1842a7318cabd37749b7f2f5a5b88a5fb997

image.png

js
sh '/var/jenkins_home/sonar-scanner-4.8.0.2856-linux/bin/sonar-scanner -Dsonar.sources=./ -Dsonar.projectname=${JOB_NAME} -Dsonar.projectKey=${JOB_NAME} -Dsonar.java.binaries=./target/ -Dsonar.login=178e1842a7318cabd37749b7f2f5a5b88a5fb997'

image.png

image.png

五、构建docker镜像

js
cp -rf ./target/*.jar ./docker/ docker build -t ${JOB_NAME}:${tag} ./docker/

image.png

js
sh '''cp -rf ./target/*.jar ./docker/ docker build -t ${JOB_NAME}:${tag} ./docker/'''

image.png

六、推送镜像到Harbor

js
sh '''docker login 192.168.201.107:80 -u admin -p 123456 docker tag ${JOB_NAME}:${tag} 192.168.201.107:80/${JOB_NAME}/${JOB_NAME}:${tag} docker push 192.168.201.107:80/${JOB_NAME}/${JOB_NAME}:${tag}'''

image.png 已成功推送到Harbor仓库,注意的是,前提要创建好这个仓库

image.png

七、连接目标服务器拉取镜像进行启动

配置好端口的变量

image.png

js
jiaoben.sh 192.168.201.107:80 mytest1test ${JOB_NAME} $tag $host_port $port
js
sshPublisher(publishers: [sshPublisherDesc(configName: '测试本机服务器', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: "jiaoben.sh 192.168.201.107:80 mytest1test ${JOB_NAME} $tag $host_port $port", execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])

image.png

注意变量在gitlab仓库那边要改成双引号 image.png

最后完成整个pipeline的CI/CD流程

image.png

image.png

本文作者:松轩(^U^)

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

Document