k8s中jenkins构建maven项目【22】

网友投稿 351 2022-10-24

k8s中jenkins构建maven项目【22】

上次第20的内容是通过jenkins构建内容,但是没有使用maven进行编译

现在开始实现一下

1、首先使用jenkinssalve构建maven,就必须让jenkins有maven

首先基于原来的jenkins镜像,cnych/jenkins:jnlp6作为基础镜像然后把maven工具放到镜像,然后添加环境变量,可以出现mvn -version出现成功就行

网上有资料可以自己操作,这里是dockerfile的命令

2、配置jenkins

因为maven编译需要第三方包,一般不配置国内仓库回到国外下载,会有超时,所以要准备一个settings。xml文件

改成阿里的

然后创建configmap文件然后挂载到jenkinsslave的镜像

kubectl create configmap settings.xml --from-file=settings.xml -n kube-ops

接下来开始挂载,需要挂载的比较多

保存完成就行

3、开始构建,先简单测试一下使用-s指定settings.xml文件

node('haimaxy-jnlp'){    stage('build') {      echo "1.Clone Stage"      sh "mvn archetype:generate -DgroupId=org.javaboy -DartifactId=clb -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false -s /home/jenkins/settings/settings.xml"    }    stage('package') {      echo "2.Test Stage"      sh "cd /home/jenkins/agent/workspace/kube-ops/clb && mvn package"    }    stage('install') {      echo "3.Build Docker Image Stage"      sh "cd /home/jenkins/agent/workspace/kube-ops/clb  && mvn install"    }}

构建没有问题,说明maven没问题

4、开始构建一个tomcat项目

node('haimaxy-jnlp'){        stage('Clone') {        echo "1.Clone Stage"        git credentialsId: '5789c68f-ebf6-45b8-b9e5-5648c1a3eb09', url: '   script {    //获取comment id        env.imageTag = sh (script: 'git rev-parse --short HEAD ${GIT_COMMIT}', returnStdout: true).trim()      }   }

stage('build') {      echo "2.mvn clean"      sh "cd /home/jenkins/agent/workspace/bbs/solo-master && mvn clean -Dmaven.test.skip=true  install -s /home/jenkins/settings/settings.xml"    }    stage('build dockerfile') {      echo "3.build dockerfile"      sh '''cd /home/jenkins/agent/workspace/bbs/solo-master/targetREPOSITORY=10.4.7.52/cnych/jenkins-demo:${imageTag}cat >> Dockerfile << EOFFROM tomcat:7RUN mkdir /usr/local/tomcat/webapps/ROOTADD ./solo.jar /usr/local/tomcat/webapps/ROOTUSER rootEOFdocker build -t $REPOSITORY .      '''    }    stage('docker push  ') {      echo "docker run"      sh '''      REPOSITORY=10.4.7.52/cnych/jenkins-demo:${imageTag}      docker login -u admin -p Harbor12345      docker push $REPOSITORY      '''    }        stage('kubectl apply'){          echo "kubectl apply"          sh '''REPOSITORY=10.4.7.52/cnych/jenkins-demo:${imageTag}cat >> tomcat.yaml << EOF          apiVersion: apps/v1kind: Deploymentmetadata:  name: tomcat-deployment  labels:    app: tomcatspec:  replicas: 3  selector:    matchLabels:      app: tomcat  template:    metadata:      labels:        app: tomcat    spec:      containers:      - name: tomcat        image: \$REPOSITORY        ports:        - containerPort: 8080---apiVersion: v1kind: Servicemetadata:  name: tomcat-service  labels:    app: tomcatspec:  ports:  - port: 8080    targetPort: 8080    nodePort: 31305  selector:    app: tomcat  type: NodePortEOF          '''      sh "kubectl delete -f tomcat.yaml"      sh "kubectl apply -f tomcat.yaml"          }

}

这里可以参考一下这个文档

5、开始构建

看看容器是否启动

访问一下试试

这是我从github 找的一个solo开源的文件,测试的编译,吧包放到了自己的gitlab上面,然后测试编译,所以会有报错

了解编译过程就行,需要自己测试可以下载从github上面

在看看镜像

说明tag生成成功了

今天演示到这里,后面在写一下回滚更新

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:什么是应用程序接口_应用程序接口有什么作用
下一篇:本真的REST架构风格理解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~