记录一下Docker+Jenkins自动化部署Gitee上SpringBoot项目遇到的坑
  uGinQ3Jhe1G9 2023年11月13日 30 0

项目场景: 阿里云服务器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自动化部署踩过的坑

1.安装环境 相信接触到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里要找到标签对,填入下面的内容,在mirrors标签对里有且只有下面这些内容

<mirror>
     <id>alimaven</id>
     <name>aliyun maven</name>
     <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
     <mirrorOf>central</mirrorOf>
    </mirror>

springboot测试项目:https://gitee.com/trumpetlb/jenkinsDemo.git

二.坑

1.运行内存要够 刚开始由于服务器上跑着很多东西,free -h查看剩余内存只有100MB左右,docker run每次都是运行一会就自动关了 "docker ps -a显示Exited(137)"

2.jenkins镜像 网上很多文章都写了要改jenkins的镜像到清华镜像站,实测其实不需要改(网络环境黑龙江移动 2023.3.31日),假如改为清华镜像会导致很多Jenkins插件下载失败,用原本镜像就好;实在不行可以尝试科学上网。

记录一下Docker+Jenkins自动化部署Gitee上SpringBoot项目遇到的坑_docker

如果上图这个地方会点开报很多错 ,一般来说点击右边的纠正就行,他会自己下载,下载完后自己手动重启docker “命令: docker restart [镜像id] ” 就行,网页里那个自动重启不怎么管用;

还是不行的话可能是版本问题(Jenkins2.387.1该版本亲测可用[系统管理最右下角可以看版本]),看一下这个铃铛一样的按钮里点开最下面是否有更新的字样,有的话点右边那个自动更新,然后重启镜像就行

3.全局工具配置

记录一下Docker+Jenkins自动化部署Gitee上SpringBoot项目遇到的坑_maven_02

在工具配置里,将刚才docker run时-v挂载的maven和jdk路径写进去就行(冒号后面的docker路径)

记录一下Docker+Jenkins自动化部署Gitee上SpringBoot项目遇到的坑_docker_03

类似图中这样

然后到系统管理里配置gitee就行,注意:这个api令牌只能在这用,在创建项目时不太行(创建项目时本人使用的是Username with password)

记录一下Docker+Jenkins自动化部署Gitee上SpringBoot项目遇到的坑_Jenkins_04

然后跟着网上大多数文章的步骤,创建一个Maven项目

记录一下Docker+Jenkins自动化部署Gitee上SpringBoot项目遇到的坑_docker_05

源码管理选Git,然后填写gitee项目地址(https那个)和用户名密码

在构建触发器里选webhook,在gitee的项目中的项目管理里选webHook,填入Jenkins中提示要填的url和密码

记录一下Docker+Jenkins自动化部署Gitee上SpringBoot项目遇到的坑_docker_06

Build里的Goals and options填clean install -Dmaven.test.skip=true

记录一下Docker+Jenkins自动化部署Gitee上SpringBoot项目遇到的坑_Jenkins_07

Post Steps里 下面的add post build step 里选 执行shell (关键)

记录一下Docker+Jenkins自动化部署Gitee上SpringBoot项目遇到的坑_Jenkins_08

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 &

最后点立即构建就行了,不出意外的话项目已经跑起来了,访问即可

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  wwLZeziuqjLR   2023年12月11日   29   0   0 Dockercentos
  MCWYWqSAMsot   2023年12月11日   30   0   0 Docker
  DnoStTHsc0vp   2023年12月11日   22   0   0 Docker
  wwLZeziuqjLR   2023年12月08日   94   0   0 Dockercentosbash