1.引言
在个人服务器部署个人项目的小伙伴都知道,部署springboot是一件重复且麻烦的事,首先要打jar包,再上传到服务器,这个过程可算折磨,尤其是在上行网络差的情况下更是抓狂(是我本人没错了)。如果有工具只需要点一下就能部署,那就方便多了,接下来就开始吧!
2.安装Jenkins
由于是使用docker部署springboot,因此Jenkins也直接用docker安装了。没有安装docker的小伙伴请自行安装,也很简单的。
# 先把Jenkins的镜像拉取下来
docker pull jenkins/jenkins:2.452.1
# 创建/data/jenkins目录,用于挂载Jenkins的文件
sudo mkdir -p /var/jenkins_home
sudo chown -R 1000:1000 /var/jenkins_home
sudo chmod -R 755 /var/jenkins_home
#拉取Jenkins镜像
docker pull jenkins/jenkins:2.452.1
#由于某些原因,最近docker无法拉取镜像,可以执行如下命令
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://dockerhub.icu"]
}
EOF
#执行完上面的命令后需要重启docker
systemctl restart docker
# 运行Jenkins容器,如果你没有docker基础知识,可以看下这条命令的解释:
# docker run表示根据某个镜像启动一个容器,这里是jenkins/jenkins这个镜像,:2.452.1表示镜像的tag,可以理解为版本号。
# -d表示镜像在后台运行。
# -- name 标识容器的名称,这里是叫Jenkins。
# -p 表示将容器的端口映射到宿主机,冒号前面的8080是宿主机的端口,后面的是容器的。因为Jenkins是运行在8080端口的,因此需要将Jenkins容器的8080端口映射到宿主机端口。
# -v /data/jenkins:/var 表示挂载容器的目录到宿主机。
docker run -d --name jenkins -p 8080:8080 -v /var/jenkins_home:/var/jenkins_home jenkins/jenkins:2.452.1
#在浏览器访问Jenkins地址(如果是购买的服务器,记得在安全组里放行8080端口)
http://你的ip地址或域名:8080/
访问到Jenkins之后,会提示需要管理员密码,默认密码可以在Jenkins容器的启动日志里看到
查看Jenkins容器的启动日志 docker logs -f --tail=100 jenkins
将密码粘贴点击继续
接着点击“安装推荐的插件”,Jenkins会自动安装必要的插件。如果安装失败的话,也不要紧,可以重试或者后续再安装。
安装完成后,创建自己的账号和密码
3.安装必要的插件
为了后面的自动化构建,除了Jenkins推荐的插件,我们还需要额外安装另外的插件
依次点击“manage Jenkins”->plugins->avaliable plugins
搜索SSH
勾选后点击安装,如图
安装完publish over ssh再安装Gitee插件,因为我们的代码是放在Gitee仓库的
4.配置Gitee账号
依次点击“系统管理”->“系统配置”,往下滑会找到“Gitee 配置”。
接着需要到Gitee官网创建一个令牌,这个令牌是让Jenkins到Gitee拉取代码时登录认证用的。
登录你的Gitee账号,网站是这个:https://gitee.com
在“个人账号管理”->“私人令牌”菜单下创建一个令牌(注:这个令牌要保存好,关闭窗口之后就找不回了,忘记了又要创新创建,挺麻烦的)
创建好Gitee令牌之后,回到Jenkins配置Gitee令牌
完成操作之后点击保存
添加完Gitee令牌之后,要需要添加一个服务器的令牌,用于Jenkins执行远程shell命令:
依次点击“系统管理”->“凭据”
除了添加服务器的账号密码,还需要添加一个Gitee的账号密码凭据!!!
回到系统配置,找到“SSH remote hosts”,新增一个远程服务器
4.写个测试代码
随便写个springboot的hello world测试代码,上产到Gitee。这个你自己完成就好了
5.创建Jenkins项目
在Jenkins首页,点击新建项目,选择“自由风格软件项目”
在源码管理点击Git,输入你的项目Gitee地址。凭据选择在上面创建的Gitee账号密码凭据,如果没创建的话,点击添加,类型是username with password。输入账号和密码后就能选择了。刚才新建的Gitee令牌在这里是无法选择的,要使用Gitee账号密码作为凭据!!
点击保存,回到Jenkins项目首页点击立即构建,如果构建成功,证明Jenkins是可以从Gitee拉取代码的。我们可以继续下一步操作了
在宿主机进入跟Jenkins挂载的目录,可以看到拉取下来的代码
cd /var/jenkins_home/workspace
6.打包构建docker镜像
代码拉取完之后,使用maven打包成jar包,再构建成docker镜像后启动。这就是接下来的总体思路了。为了实现这目的,我们可以在宿主机写一个shell脚本,在Jenkins触发脚本就行。
#先创建一个存放程序的jar包和启动脚本
mkdir -p /data/app/hello_world
cd /data/app/hello_world
#创建一个Dockerfile脚本