1.目的
1,让每次部署不再那么麻烦
2,网上jenkins+码云+springboot+2G运行内存服务器,形式文章太少,过程太艰辛,特此记录。
3,为什么非用码云,是gitlab不香吗?不。。。是太穷,2G运行内存的小草履虫,干啥都得精打细算。
2.配置
1,jenkins 2.205
2,jdk 1.8
3,maven3.3.9(一开始用3.5.0版本,但报jar包冲突,网上找原因,换到3.3.9)
4,git 2.9.5
5,tomcat 7.0.85
3.构建项目前检查
3.1 插件检查
码云插件检查
码云插件安装教程:https://gitee.com/help/articles/4193#article-header2
maven插件检查
maven插件安装在可选插件里搜索maven,建议版本3.3.9
maven插件安装过程中maven integratio插件可能会遇到安装失败的情况,可以在http://updates.jenkins-ci.org/download/plugins/maven-plugin/2.14/maven-plugin.hpi中手动下载hpi文件,然后在高级安装中上传
3.2 配置检查
git配置检查
3.2.1关于jenkins配置git
1.卸载自带的git,终端输入:
yum remove git
2,安装所需安装包,终端输入:
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc
yum install gcc perl-ExtUtils-MakeMaker
3,下载新的 ,地址:githttps://mirrors.edge.kernel.org/pub/software/scm/git/
4,上传到终端安装目录(自己选)
5,解压,安装目录终端输入:
tar zxvf v版本号.tar.gz
6,安装,终端输入:
cd git
make all
make install
7,配置环境变量
cd ~
cd …
cd etc/
vi profile
加入:export PATH=$PATH:你的安装目录路径/git/bin
8,配置,看上图。
maven配置检查
码云配置
链接名:自己决定
Gitee 域名 URL:输入码云完整URL地址,https://gitee.com
证书令牌:右边选项点击add,选择jenkins,
1,Domain:选择全局凭据(Global credentials)
2,类型(Kind):选择Gitee API 令牌(Gitee API Token)
3,范围(Scope):,全局
4,Gitee APIV5 私人令牌(Gitee API Token):获取地址https://gitee.com/profile/personal_access_tokens
5,ID和描述:随便填
Advanced:可配置是否忽略 SSL 错误(适您的Jenkins环境是否支持),并可设置链接测超时时间(适您的网络环境而定),我是忽略掉的了。
测试连接:点击可以确定自己的配置是否正确,如果不正确,则根据插件配置重新再走一遍。
4.正式开始新建SpringBoot项目
添加参数是为了在后面的shell脚本中使用
一共添加四个参数:
1,jar_name 打包名称
2,jar_path 打包后放置目录(我jenkins是war包放在tomcat中运行,安装完毕之后jenkins从码云上拉下代码放置的工作空间在/root/.jenkins/workspace目录下)
3,project_name 项目名称
4,spring_profile 环境标识prod,dev,uat…
源码管理选git,url是项目在远程仓库的地址,添加的是账号密码
root pom填pom.xml,下面是打包命令
post steps选执行shell
echo $spring_profile $jar_path $jar_name
cd /usr/local/shell/
./stop.sh $jar_name
echo "Execute shell Finish"
./startup.sh $spring_profile $jar_path $jar_name $project_name
这段脚本涉及到另两个脚本,先是stop.sh 作用是停掉上个线程
jar_name=${1}
echo "Stopping" ${jar_name}
pid=`ps -ef | grep ${jar_name} | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
echo "kill -9 的pid:" $pid
kill -9 $pid
fi
第二个是startuo.sh,作用是启动项目
spring_profile=${1}
jar_path=${2}
jar_name=${3}
project_name=${4}
cd ${jar_path}/target/
echo ${jar_path}/target/
echo nohup java -server -Xms128m -Xmx256m -jar ${jar_name} &
BUILD_ID=dontKillMe nohup java -jar ${jar_name} --spring.profiles.active=${spring_profile} &
这两个脚本放在终端/usr/local/shell/目录下,注意,如果这两个脚本是在windows环境下编辑,然后上传至linux环境的,有时候会报一些莫名其妙的错误,需要给dos文件格式转成unix,所以,上传完成后,在终端输入:
1,如果没安装 dos2unix,先安装: yum install dos2unix,
2,然后输入命令: dos2unix filename
3,最后给脚本添加可执行权限: chmod -R 777 filename.sh
都设置好之后点击保存
5.然后build
6,到这如果你构建成功,那你就已经结束了,不用再往下看了,如果你没成功,构建失败,原因是内存溢出,或是maven报ERROR: Failed to launch Maven. Exit code = 1,或是Maven JVM terminated unexpectedly with exit code 137,甚至jenkins 显示成功,但springboot项目日志却报莫名其妙的错导致[stopping tomcat],你可以继续看看,也许能帮到你。
经过我一番折腾,最后结论。。。都是穷闹的,我2个G运行内存的小草履虫,明显扛不住这么多东西(我还装了mysql,zokeeper,redis,kafka…)
所以,第一步是卸载你不用的东西
第二步,设置maven的内存
终端输入vi etc/profile
修改maven环境变量,添加
MAVEN_OPTS=-Xmx1024m
改完别忘终端输入:source etc/profile 让配置生效
第三步,修改承载jenkins的tomcat配置
打开你tomcat所在目录
终端输入:vi bin/catalina.sh
添加JAVA_OPTS=’-Xms256m -Xmx1024m -XX:MaxNewSize=256m -XX:MaxPermSize=1024m’
最后重启jenkins.
如果做完这些还不行,内存还不够用。。。。那你就换服务器吧。。。如果可以的话