一分钟搞定Jenkins,实现持续发布

背景:

在实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试,而是同组程序员将代码提交后,由测试人员测试;

或者前后端分离后,经常会修改接口,然后重新部署;

这些情况都会涉及到频繁的打包部署;

手动打包常规步骤:

1.提交代码

2.问一下同组小伙伴有没有要提交的代码

3.拉取代码并打包(war包,或者jar包)

4.上传到Linux服务器

5.查看当前程序是否在运行

6.关闭当前程序

7.启动新的jar包

8.观察日志看是否启动成功

jenkins 可以将其简化

jenkins定位:

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

准备工作: 需要一台服务器,新用户可以从阿里云申请一个三个月的免费服务器

实际操作

拉取镜像 docker pull jenkins/jenkins:lts


docker run -d -u root 
-p 8080:8080 
-p 50000:50000 
-v jenkins-data:/var/jenkins_home 
-v /var/run/docker.sock:/var/run/docker.sock 
-v /usr/java/jdk1.8.0_451:/usr/java/jdk1.8.0_451 
    -v /usr/java/jdk-17:/usr/java/jdk-17
-v /usr/local/apache-maven-3.9.2:/usr/local/apache-maven-3.9.2 
-v /usr/bin/docker:/usr/bin/docker 
--name jenkins 
jenkins/jenkins:lts
  
  #上面命令可能会有空格,可以找ai一键修改格式
  
  • 查看jenkins初始化密码

docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword

  • 查看是否挂载成功

docker inspect jenkins

之后需要上传 maven,以及jdk(可以直接从oracle官网下载对应的Linux版本)

示例:
sudo rpm -e jdk-17-2000:17.0.16-12.x86_64   #删除jdk 17的相关文件
sudo rpm -ivh jdk-17.0.16_linux-x64_bin.rpm  # 下载

jdk安装完之后 在 /etc/profile 文件中导出环境变量,maven 同理

# maven 6-30
export MAVEN_HOME=/usr/local/apache-maven-3.9.2 #maven对应的位置
export PATH=$PATH:$MAVEN_HOME/bin
# java 6-30
export JAVA_HOME=/usr/java/jdk1.8.0_451  #jdk安装目录
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

修改maven 仓库地址

  • 修改maven的地址(/usr/local/apache-maven-3.9.2/conf/settings.xml)
/usr/local/repository_new

这里指定的是相对于虚拟机的地址
  • 解决权限不足问题:
chmod 777 /usr/local/apache-maven-3.9.2/bin/mvn

Jenkins插件安装

在实现持续集成之前, 需要确保以下插件安装成功。

  • Maven Integration plugin: Maven 集成管理插件。
  • Docker plugin: Docker集成插件。
  • GitLab Plugin: GitLab集成插件。
  • Publish Over SSH:远程文件发布插件。
  • SSH: 远程脚本执行插件。

配置

  • 下载java,配置jenkins中的 java

  • 配置docker

配置maven

新建任务-构建镜像

配置git 路径

文件构建完成保存的位置:

对应宿主机/var/lib/docker/volumes/jenkins-data/_data/workspace/demo6-30-2/target

tips

这里我导入的java是jdk1.8 但是这个项目我使用的是17, 正常来说会报错,但是jenkins第二次构建的时候会自动修复

找到文件保存的位置,运行 jar包,(我这里配置的虚拟卷默认位置为:/var/lib/docker/volumes/jenkins-data/_data/workspace)

后台运行jar包

nohup java -jar tutor-gateway-app-1.0-SNAPSHOT.jar > app2.log 2>&1 &

查看并且关闭jar 程序

#查询所在的端口号
netstat -tulnp | grep :8080
#查找正在运行的进程
ps aux | grep tutor-gateway-app-1.0-SNAPSHOT.jar
#关闭进程
kill 进程id

todo

后续可以通过自定义shell脚本来实现自动构建镜像,自动运行功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值