Jnnkins+Gogs+Docker 集成自动化部署教程(实战教程),为了方便小公司没有运维开发人员,利用Jenkin解决了繁琐的打包部署问题。这次我就写了一个Gogs的集成教程,我觉的Gogs私服比较简单,其他的GitLab、svn、GitHub基本上也是一样的,搭建好了,开发人员只需要提交到版本控制仓库,即可自动打包部署。
一、前言
为了方便小公司没有运维开发人员,利用Jenkin解决了繁琐的打包部署问题。这次我就写了一个Gogs的集成教程,我觉的Gogs私服比较简单,其他的GitLab、svn、GitHub基本上也是一样的,搭建好了,开发人员只需要提交到版本控制仓库,即可自动打包部署。
二、工作原理
以上为基本工作原理,只是为了开发人员更好的理解画的(个人理解)。其实就是开发人员把代码提交到代码仓库,就可以自动打包部署。
1.需要准备一台服务器,大家可以在网上买,个人学习的话还是建议大家去安装一个虚拟机,去装一个Linux系统。
2.需要准备一个远程连接工具,连接到Linux系统,作者采用的是:Xshell 工具 (注意:Xshell下载地址翻到本文最下面)。
https://www.cnblogs.com/fuzongle/p/12834080.html
https://www.cnblogs.com/fuzongle/p/12840219.html
以上如有安装过的可以跳过,如果安装种遇到任何问题翻到最下面,寻找帮助,希望能帮助大家。
三、新建项目
1.主页→新建项目
2.在General中选择丢弃旧的构建,保持构建天数自定义,保持最大构建个人数,根据个人需求。
3.将Gogs仓库的地址连接到源码管理中,账号密码是Gogs私服的账号密码,分支可以自定义。
4.触发远程构建 (例如,使用脚本)
5.编写shell命令如下,保存即可。
#!/bin/bash
chmod 777 /var/jenkins_home/stop.sh
/var/jenkins_home/stop.sh
chmod 777 /var/jenkins_home/startup.sh
BUILD_ID=dontiKillMe /var/jenkins_home/startup.sh
6.在jenkins_mount工作目录下新建,sturtup.sh stop.sh
stop.sh
#!/bin/sh
cd /var/jenkins_home/jenkins_war
echo "stopping helloboot application...."
pid=`ps -ef | grep canal-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
if ["$pid" == ""]
then
echo "helloboot is already stop!"
else
echo "kill -9 的pid:"+$pid
kill -9 $pid
fisturtup.sh
#!/bin/bash
echo "remove old helloboot.jar ..."
rm /var/jenkins_home/jenkins_war/canal-0.0.1-SNAPSHOT.jar
cp /var/jenkins_home/workspace/test/target/canal-0.0.1-SNAPSHOT.jar /var/jenkins_home/jenkins_war
sleep 2s
echo "running helloboot.jar...."
daemonize -E BUILD_ID=dontKillMe
nohup java -jar /var/jenkins_home/jenkins_war/canal-0.0.1-SNAPSHOT.jar --server.port=8090 &
7.我们在Gogs私服上,上传一个java项目,点击仓库配置,选择web钩子,选择Gogs。
8.配置测试Gogs推送Jenkins是否能够正常推送。
9.测试项目是否正常运行,咱们在开发工具中,随便写一个访问的API接口,提交一下。
10.我们看jenkins正在自动构建,如下图
11.构建成功后,ip加上端开口访问一下: