安装Docker随便根据其他教程安装即可,本文着重讲jenkins的安装与环境配置。
一、安装jenkins
1.运行命令搜索Jenkins
docker search jenkins
deprecated
是弃用的意思,第一条搜索记录就是告诉我们 jenkins 镜像已经弃用,让我们使用 jenkins/jenkins:lts
镜像名进行拉取。
2.拉取Jenkins镜像
docker pull jenkins/jenkins:lts
docker images #查看镜像
3.启动Jenkins
先在宿主机创建Jenkins的挂载目录
mkdir -p /home/jenkins/workspace
启动容器
docker run -uroot -d --restart=always --privileged=true -p 9001:8080 -p9002:50000 \
-v /home/jenkins/workspace/:/var/jenkins_home/workspace \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/docker:/usr/bin/docker \
--name jenkins jenkins/jenkins:lts
4.访问及注意事项
如果使用的是阿里云或者腾讯云等服务器,需要打开防火墙规则,开放容器映射的宿主机的端口9001,9002。打开后页面
进入容器中查询密码并输入后继续
docker exec -it -uroot jenkins bash # -uroot 是以管理员身份登入容器
cat /var/jenkins_home/secrets/initialAdminPassword
5.安装,安装推荐插件即可。
创建一个jenkins账号,如果不想创建使用默认的admin即可,如果是公网,admin账号需要修改密码。如是新创建的账号就不用。
然后进行jenkins主界面
二、环境配置
1.插件安装
本次使用的是gitee作为代码仓库,需要安装gitee插件
maven 插件:Maven Integration plugin
SSH远程连接插件:Publish Over SSH
2.环境配置
Gitee
进入jekins的系统设置,添加gitee令牌,如果不使用这个令牌模式,可以后续再新建流水线时再通过用户名和密码添加即可。
信息填写完成点击【测试连接】按钮,提示成功,说明设置gitee令牌设置正确。
Maven
进入jenkins的工具设置,选择版本,选自动安装
JDK
之前装的插件的作用就是可以选择自动安装jdk版本,新增安装Install from adoptium.net 模式并选择项目使用的jdk版本,后续会自动安装JDK。
3.构建Maven项目
配置
添加源码仓库的地址,以及配置gitee账号密码后保存
配置maven 构建命令 clean install -Dmaven.test.skip=true
配置远程SSH连接,服务器ip,用户名,密码等,用来将打包好的jar包传输到远程服务器进行部署。
信息填写完成之后,点击【Test Configuration】按钮,出现如下提示表示连接成功
4.任务配置
exec command可以先不写,可以先部署下看是否可以将容器中的jar包传输到宿主机指定目录。
如果可以进行下面脚本的编写
#!/bin/bash
source /etc/profile
#查看之前运行的进程id
pid=`ps -ef | grep ymxSeller-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
echo "部署前的pid进程 :$pid"
# 关闭已经启动的jar进程
if [ -n "$pid" ]thenkill -9 $pid
elseecho "进程没有启动"
fi
sleep 5s
#copy jar 到启动目录
\cp -rf /home/workplace/maven-demo/ymxSeller-0.0.1-SNAPSHOT.jar /home/workplace/maven-demo/restartdir/ymxSeller-0.0.1-SNAPSHOT.jarcd /home/workplace/maven-demo/restartdir
nohup /usr/java/jdk1.8.0_371/bin/java -jar /home/workplace/maven-demo/restartdir/ymxSeller-0.0.1-SNAPSHOT.jar > /home/workplace/maven-demo/restartdir/springboot.log 2>&1 &
echo "脚本执行完毕"
sleep 5s
pid=`ps -ef|grep ymxSeller-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
# 检验进程是否启动
if [ -n "$pid" ]thenecho "部署后的pid进程 :$pid"echo "启动成功"
elseecho "进程没有启动"
fi
~
创建restart.sh并编写上面的脚本,大致意思就是查询该jar包是否正在运行,如果正在运行,kill掉该进程,然后重新运行新的jar包。可以自己查看日志
注意里面的jar包名称和路径。文件夹必须存在,日志文件可以自己生成。
5.任务构建
点击构建即可进行部署。
最后,构建后日志