1.环境搭建jenkins(docker安装)+github+springboot(手动部署)
1.安装docker
https://blog.****.net/m0_37970699/article/details/103677596
Docker 相关命令:
https://blog.****.net/m0_37970699/article/details/105845267
2.docker 安装jenkins
在home目录下创建jenkins的工作空间挂载目录
mkdir jenkins
赋权 chmod 777 jenkins
然后,创建并运行jenkins容器
docker run -it --privileged -p 8000:8080 -p 50000:50000 -p 8001:8001
-v /home/jenkins:/var/jenkins_home 镜像id /bin/bash
解释命令:
--privileged 使容器继承宿主登录账号权限,用来同步工作空间数据
3个端口映射 由于宿主机8080被占用所以映射成了8000,你也可以映射成其他的,
容器的8080,50000两个端口是容器中jenkins使用的,8001是我们预留的测试项目的端口,我们这次jenkins与项目在同一个服务器下.
-v就是数据卷挂载,将容器中jenkins的工作空间挂载到宿主机上便于操作和备份.
然后,打开浏览器 ip:8000 可以看到jenkins页面说明部署成功
之后就是jenkins的基本的设置包括账户名,密码.这没什么好说的.主要是插件的安装:
在第一次进入jenkins时会让我们选择要安装的插件,选择右边的就行了,你也可以根据自己的情况删去一些(如果jenkins版本较低,需要更新一下jenkins,也是在manage jenkins里面)
GitHub Integration Plugin,Maven Integration plugin,
Pipeline,Pipeline Maven Integration Plugin, Pipeline: GitHub
我们最终的目的是实现 当我们更新代码到github上时,jenkins自动将新的版本进行重新部署,不需要我们的任何操作.
3.开始基本的手动部署github+maven+jenkins 流程.
jenkins 通过github拉去最新代码----->通过maven打包--------->通过shell脚本部署启动
首先,github创建仓库,在本地建一个springboot web项目并上传到该仓库下,
https://github.com/ToBeSupJavaMan/testjenkins
if (ps -ef| grep java|grep 8001)
then (ps -ef| grep java|grep 8001| awk '{print $2}'|xargs kill -9)
脚本的主要意思是杀掉8001端口服务的进程(也就是我们即将要部署的项目,这样我们就可以重复部署,否则第一次部署之后,再次部署时会报端口已经被占用的错)
export BUILD_ID=dontKillMe //设置cookie ,否则项目启动之后,jenkins会自动杀掉
JENKINS_NODE_COOKIE=dontKillMe nohup java -jar /var/jenkins_home/workspace/mavenTest/target/jenkinsboot-0.0.1-SNAPSHOT.jar --server.port=8001 &
后面的内容就是找到我们maven打包后的jar的地址,然后后台启动就行了.
如果不知道maven打包后的地址,可以先不写Poststep,直接走下面的流程,在构建的时候,控制台可以找到maven的打包地址,你也可以进到docker容器里面查看/var/jenkins_home/workspace,一般就在这个目录下
等进度条走完,前面的图标变成蓝色表示已经构建成功,如果你想看构建步骤,点击 项目构建的次数,当前我构建了4次,是 #4,然后出现下拉框,点击控制台即可,或者直接点进去,
表示项目启动成功,测试一下:ip:8001/hello请求项目