背景:
在实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试,而是同组程序员将代码提交后,由测试人员测试;
或者前后端分离后,经常会修改接口,然后重新部署;
这些情况都会涉及到频繁的打包部署;
手动打包常规步骤:
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脚本来实现自动构建镜像,自动运行功能
433

被折叠的 条评论
为什么被折叠?



