一、原理
开发人员提交完代码至版本控制器后,由Jenkins自动获取远程代码,自动打包,然后再自动发布的过程。
二、使用Docker安装Jenkins
前提是linux中已经安装Docker,再执行以下命令:
docker run -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean
访问Jenkins:http://192.168.154.128:8080/
(无法访问可关闭防火墙 命令:systemctl stop firewalld)
提示密码在路径中的文件中,因此需要进入到docker容器找到该密码:
输入完密码后进入到如下界面:
选择安装推荐的插件进入:
到了下面这个界面,说明Jenkins安装成功!
三、Jenkins控制台配置jdk和Maven环境
因为Docker在安装Jenkin时,已自动在容器中安装Jenkins依赖的相关jdk以及maven环境。因此可将已安装好的jdk和maven在Jenkins控制台中进行配置。
进入到docker容器jenkins中,通过echo $JAVA_HOME命令查看当前容器内jdk的安装路径
docker ps -a
docker exec -it eb077c1bf067 bash
echo $JAVA_HOME
配置jdk:
配置maven:
点击最下面的保存按钮
springboot项目为Maven项目,需要下载maven插件:
系统管理–插件管理–可选插件–搜索Maven Integration进行安装,然后勾选安装后重启Jenkins
当点击新建一个任务后出现如下内容,表明maven插件安装成功
四、Jenkins控制台配置git/svn 源代码路径,以及启动jar/war包时的shell脚本
回到DashBoard首页–>点击项目 –> 点击配置
3.源码管理(配置git仓库地址,Jenkins会从远程仓库拉取代码)
4.构建配置(Jenkin拉取代码后会自动执行打包命令)
clean install -Dmaven.test.skip=true
5.配置-POST Steps下配置shell脚本(Jenkins打包完成后,自动执行shell脚本启动项目,实现自动化部署),最后保存即可
附shell脚本:
#!/bin/bash
# #!/bin/bash是指此脚本使用/bin/bash来解释执行。其中,#!是一个特殊的表示符,其后,跟着解释此脚本的shell路径。bash只是shell的一种,还有很多其它shell,如:sh,csh,ksh,tcsh,…
# #!/bin/bash只能放在第一行,如果后面还有#!,那么只能看成是注释。
#服务名称
SERVER_NAME=springbootdemo
#源jar路径,mm打包完成之后,target目录下的jar包名称,也可选择成为war包,war包 可移动到Tomcat的。
JAR_NAME=springbootdemo-0.0.1-SNAPSHOT
#target打包生成jar包的目录
JAR_PATH=/var/jenkins_home/workspace/springboot_project/springbootdemo/target
# 以具体的打包位置为准,可以先构建一次项目,通过日志查看打包的目录
#打包完成之后,把iar包移动到运行jar包的目录
JAR_WORK_PATH=/var/lib
echo “查询进程id–>$SERVER_NAME”
PID=`ps -ef | grep “$SERVER_NAME” | awk ‘{print $2}’`
echo”得到进程ID: $PID”
echo”结束进程”
for id in $PID
do
kill -9 $id
echo “killed $id”
done
echo”结束进程完成”
#复制jar包到执行目录_
#echo” 复制jar包到执行目录:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH”
#cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH
#echo”复 制jar包完成”
#cd $JAR_WORK_PATH
#修改文件权限
#chmod 755 $JAR_NAME.jar
#前台启动
cd $JAR_PATH
java -jar $JAR_NAME.jar
#后台启动
#BUILD_ID=dontKillMe nohup java -jar $JAR_NAME.jar &
选择构建历史,查看工作路径
检查结果
控制台输出成功!!!
访问项目成功!!!
问题记录:
1.当jenkins在构建项目的过程中,从github上拉取代码时超时问题(因gihub部署在国外),可以在配置–Additional Behaviours–高级的克隆行为–克隆和拉取操作的超时时间(分钟)设置超时时间
2.当日志中报pom.xml文件找不到问题。jenkins默认会去找当前jenkins项目名称目录下的pom.xml。如果你上传git的时候pom.xml文件上面还有一层目录,可以在配置pom.xml文件前加父目录
3.最终在访问spring项目的时候,要看springboot项目启动时暴露的端口是多少,要与宿主机做端口的映射(启动时-p),最终访问宿主机的端口
今天的文章jenkins自动部署流程_cicd自动化部署流程分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/70417.html