阿里云服务器CentOS7.9 2G内存
docker版本: Community 23.0.2
docker Jenkins镜像:jenkinsci/blueocean latest (2023.3.31)
Maven:3.6.3
Git version: 1.8.3.1
SpringBoot: 2.3.12.RELEASE
JDK:1.8
建议版本与上述保持一致,尤其是maven和jenkins
从零开始搭建Jenkins自动化部署踩过的坑
相信接触到Jenkins的人已经不是小白了,依照上面列出的版本逐一安装好所需软件即可。
安装无非就是去网上找tar.gz,然后rz上传,tar -zxvf解压即可。
docker run的时候建议使用以下命令:
docker run --name jenkins -u root --rm -d -p 8080:8080 -p 8079:8079 -p 50000:50000 -v /lbsoftware/jenkins_home:/var/jenkins_home -v /lbsoftware/jenkins_home/apache-maven-3.6.3:/usr/local/apache-maven-3.6.3 -v /lbsoftware/jenkins_home/jdk1.8.0_131:/usr/local/jdk1.8.0_131 -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean
这句是本人执行的命令,不同环境的话要酌情修改
重点:-p 指的是端口映射,第一个8080指将jenkins的端口映射出来(通过ip:8080访问Jenkins的web界面);第二个8079映射的是我springboot项目在yml里指定的项目运行端口(这个不写的话项目在docker中启动外界是访问不到的);
-v 指的是文件挂载,这个一定要写,格式是 “-v 本机中目录:docker中目录” 要将maven和jdk挂载进去,不然Jenkins创建工程会有问题;
安装maven后要在Maven的setting里要找到
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
springboot测试项目:https://gitee.com/trumpetlb/jenkinsDemo.git
刚开始由于服务器上跑着很多东西,free -h查看剩余内存只有100MB左右,docker run每次都是运行一会就自动关了 "docker ps -a显示Exited(137)"
网上很多文章都写了要改jenkins的镜像到清华镜像站,实测其实不需要改(网络环境黑龙江移动 2023.3.31日),假如改为清华镜像会导致很多Jenkins插件下载失败,用原本镜像就好;实在不行可以尝试科学上网。
如果上图这个地方会点开报很多错 ,一般来说点击右边的纠正就行,他会自己下载,下载完后自己手动重启docker “命令: docker restart [镜像id] ” 就行,网页里那个自动重启不怎么管用;
还是不行的话可能是版本问题(Jenkins2.387.1该版本亲测可用[系统管理最右下角可以看版本]),看一下这个铃铛一样的按钮里点开最下面是否有更新的字样,有的话点右边那个自动更新,然后重启镜像就行
在工具配置里,将刚才docker run时-v挂载的maven和jdk路径写进去就行(冒号后面的docker路径)
类似图中这样
然后到系统管理里配置gitee就行,注意:这个api令牌只能在这用,在创建项目时不太行(创建项目时本人使用的是Username with password)
然后跟着网上大多数文章的步骤,创建一个Maven项目
源码管理选Git,然后填写gitee项目地址(https那个)和用户名密码
在构建触发器里选webhook,在gitee的项目中的项目管理里选webHook,填入Jenkins中提示要填的url和密码
Build里的Goals and options填clean install -Dmaven.test.skip=true
Post Steps里 下面的add post build step 里选 执行shell (关键)
shell里内容如下,作用是杀掉之前的jar包进程,并运行新的项目
project后面改为您自己的jar包名称
dir后面写您自己的jar包路径
最后一行的nohup里改为自己对应的目录+jar包名称
#!/bin/bash
source /etc/profile
project=jenkinsDemo-0.0.1-SNAPSHOT.jar
echo "文件目录"
dir=/var/jenkins_home/workspace/hello/target/
pid=`ps -ef | grep $dir$project | grep -v grep | awk '{print $1}'`
if [ -n "$pid" ]
then
kill -9 $pid
fi
echo "运行构建的jar包"
nohup java -jar /var/jenkins_home/workspace/hello/target/jenkinsDemo-0.0.1-SNAPSHOT.jar > log 2>&1 &
最后点立即构建就行了,不出意外的话项目已经跑起来了,访问即可
如果还是不行可以留言,看到会回复的。