k8s中jenkins构建maven项目22

寸阳分阴须爱惜,休负春色与时光。这篇文章主要讲述k8s中jenkins构建maven项目22相关的知识,希望能为你提供帮助。
上次第20的内容是通过jenkins构建内容,但是没有使用maven进行编译
现在开始实现一下
1、首先使用jenkinssalve构建maven,就必须让jenkins有maven
首先基于原来的jenkins镜像,cnych/jenkins:jnlp6作为基础镜像然后把maven工具放到镜像,然后添加环境变量,可以出现mvn -version出现成功就行

k8s中jenkins构建maven项目22

文章图片

k8s中jenkins构建maven项目22

文章图片

网上有资料可以自己操作,这里是dockerfile的命令
k8s中jenkins构建maven项目22

文章图片


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

文章图片

改成阿里的

然后创建configmap文件然后挂载到jenkinsslave的镜像
kubectl create configmap settings.xml --from-file=settings.xml -n kube-ops

k8s中jenkins构建maven项目22

文章图片


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

k8s中jenkins构建maven项目22

文章图片
k8s中jenkins构建maven项目22

文章图片


k8s中jenkins构建maven项目22

文章图片

k8s中jenkins构建maven项目22

文章图片



保存完成就行

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

k8s中jenkins构建maven项目22

文章图片

【k8s中jenkins构建maven项目22】
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没问题
k8s中jenkins构建maven项目22

文章图片


k8s中jenkins构建maven项目22

文章图片


4、开始构建一个tomcat项目

k8s中jenkins构建maven项目22

文章图片

k8s中jenkins构建maven项目22

文章图片

node(\'haimaxy-jnlp\'){
stage(\'Clone\') {
echo "1.Clone Stage"
git credentialsId: \'5789c68f-ebf6-45b8-b9e5-5648c1a3eb09\', url: \'http://139.155.71.51/root/tomcat.git\'
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=trueinstall -s /home/jenkins/settings/settings.xml"
}
stage(\'build dockerfile\') {
echo "3.build dockerfile"
sh \'\'\'
cd /home/jenkins/agent/workspace/bbs/solo-master/target
REPOSITORY=10.4.7.52/cnych/jenkins-demo:${imageTag}
cat > > Dockerfile < < EOF
FROM tomcat:7
RUN mkdir /usr/local/tomcat/webapps/ROOT
ADD ./solo.jar /usr/local/tomcat/webapps/ROOT
USER root
EOF
docker build -t $REPOSITORY .
\'\'\'
}
stage(\'docker push\') {
echo "docker run"
sh \'\'\'
REPOSITORY=10.4.7.52/cnych/jenkins-demo:${imageTag}
docker login http://10.4.7.52 -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/v1
kind: Deployment
metadata:
name: tomcat-deployment
labels:
app: tomcat
spec:
replicas: 3
selector:
matchLabels:
app: tomcat
template:
metadata:
labels:
app: tomcat
spec:
containers:
- name: tomcat
image: \\$REPOSITORY
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: tomcat-service
labels:
app: tomcat
spec:
ports:
- port: 8080
targetPort: 8080
nodePort: 31305
selector:
app: tomcat
type: NodePort
EOF
\'\'\'
sh "kubectl delete -f tomcat.yaml"
sh "kubectl apply -f tomcat.yaml"

}
}

这里可以参考一下这个文档
https://cnsre.cn/posts/210608607296/


5、开始构建

k8s中jenkins构建maven项目22

文章图片


看看容器是否启动
k8s中jenkins构建maven项目22

文章图片


访问一下试试
k8s中jenkins构建maven项目22

文章图片

k8s中jenkins构建maven项目22

文章图片

这是我从github 找的一个solo开源的文件,测试的编译,吧包放到了自己的gitlab上面,然后测试编译,所以会有报错
了解编译过程就行,需要自己测试可以下载从github上面
k8s中jenkins构建maven项目22

文章图片


在看看镜像

k8s中jenkins构建maven项目22

文章图片


说明tag生成成功了
今天演示到这里,后面在写一下回滚更新




    推荐阅读