一、前言
1.实现springboot项目自动化部署前需要安装JDK、Maven 、 GIT。
2.使用docker安装的Jenkins,本文在配置Jenkins时遇到了is not a directory on the Jenkins master(but perhaps it exists on some agents)错误,解决错误方法:将本地的maven和java挂载到Jenkins容器。
3.请阅读完全文后再操作。
二、JDK安装
通过WinSCP将下载好的jdk安装包复制到/root/ghyExploit/jdk1.8目录下
# 进入/root/ghyExploit/jdk1.8目录
cd /root/ghyExploit/jdk1.8
# jdk解压
tar -zxvf jdk-8u181-linux-x64.tar.gz
# 编辑/etc/profile文件
vim /etc/profile
在/etc/profile文件末尾增加以下配置
export JAVA_HOME=/root/ghyExploit/jdk1.8/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
更新配置文件
source /etc/profile
查看是否安装成功
java -version
三、Maven安装
通过WinSCP将下载好的Maven安装包复制到/root/ghyExploit/maven目录下
# 进入/root/ghyExploit/maven目录
cd /root/ghyExploit/maven
# maven解压
tar -zxvf apache-maven-3.8.1-bin.tar.gz
在/etc/profile文件末尾增加以下配置
export MAVEN_HOME=/root/ghyExploit/maven/apache-maven-3.8.1
export PATH=$MAVEN_HOME/bin:$PATH
更新配置文件
source /etc/profile
查看是否安装成功
mvn -v
四、Git安装
# git安装
yum -y install git
# 查看git版本
git --version
# 查看git所在目录
which git
五、Jenkins安装
六、Jenkins配置
1. 配置必要插件
打开Jenkins,检查如下这两个插件是否已安装
插件1:Publish over SSH
插件2:Deploy to container Plugin
插件3:Gitee
未安装可以到插件管理进行下载安装
2. Configure System (系统设置)
3. 全局安全配置
4. 全局工作配置
七、创建任务
构建有两种方式
1.pom.xml配置方法
2.maven配置方法
本文采用pom.xml配置方法
构建后操作
stop.sh脚本如下:
#!/bin/bash
echo '-------Starting-------'
echo "Stop Procedure : design-0.0.1-SNAPSHOT.jar"
pid=`ps -ef |grep java|grep design-0.0.1-SNAPSHOT.jar|awk '{print $2}'`
echo 'old Procedure pid:'$pid
if [ -n "$pid" ]
then
kill -9 $pid
fi
start.sh脚本如下:
#!/bin/bash
export JAVA_HOME=/root/ghyExploit/jdk1.8/jdk1.8.0_181
echo ${JAVA_HOME}
echo 'Start the program : design-0.0.1-SNAPSHOT.jar'
chmod 777 /root/ghyProject/jenkinsProject/design-0.0.1-SNAPSHOT.jar
echo '-------Starting-------'
cd /root/ghyProject/jenkinsProject/
nohup ${JAVA_HOME}/bin/java -jar reservoirs-0.0.1-SNAPSHOT.jar > /root/ghyProject/jenkins-reservoirs/log.txt &
echo $! > /root/ghyProject/jenkins-reservoirs/log.txt
echo 'start success'
运行jar包的同时生成log.txt日志文件
*注意:脚本中的地址与jar包名称需注意与自己安装部署的地址、名称一致,复制脚本的话需注意文本中是否存在“\r”、“\n”等符文导致脚本运行出错。
将这两个脚本通过WinSCP扔到上传代码的根目录地址:/root/ghyProject/jenkinsProject下
八、Gitee配置
到此,所有配置完成
九、项目构建
构建时报错了
此时回看Jenkins maven配置可以发现如下提示:
同样的,JAVA_HOME也是一样的报错
前边安装时以为只是个警告,并没有在意,翻阅资料后发现,采用docker安装的Jenkins需要将本地的maven和java挂载到Jenkins容器,然后重新启动安装Jenkins
至此,重新生成Jenkins容器,命令如下:
# 新建一个Jenkins_home挂载目录
mkdir /var/jenkins_home
# 给挂载目录授权
sudo chown -R 1000 /var/jenkins_home
# 启动容器
docker run \
-u root \
--rm \
-d \
-p 8050:8080 \
-p 50001:50001 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /root/ghyExploit/jdk1.8/jdk1.8.0_181/bin/java:/root/ghyExploit/jdk1.8/jdk1.8.0_181/bin/java \
-v /root/ghyExploit/jdk1.8/jdk1.8.0_181:/root/ghyExploit/jdk1.8/jdk1.8.0_181 \
-v /root/ghyExploit/maven/apache-maven-3.8.1:/root/ghyExploit/maven/apache-maven-3.8.1 \
-v /var/jenkins_home:/var/jenkins_home \
jenkinsci/blueocean
# 查看容器是否运行
docker ps
此处端口改为了8050与50001,原先运行的端口为8040的jenkins容器可以删除了,然后再重新执行以上的配置操作即可成功实现项目的自动化部署。
题外话:如果需要挂载新的工具,如nginx和node,可以通过重新生成容器的方式挂载上去,但又不想重新配置Jenkins,不想丢失已经实现自动化部署的项目相关配置,可以将原先容器/var/jenkins_home挂载目录复制一份,生成新的容器后,再把挂载目录内容替换掉,这样启动Jenkins后数据还都在。
Jenkins构建控制台输出如下
上传代码的根目录地址出现如下文件
十、测试
项目中的测试代码如下
端口为8060
通过浏览器访问项目,可以正常访问
修改接口的返回内容为“Test!”,然后执行push提交代码到gitee仓库,等待Jenkins自行构建后,再刷新浏览器
项目自动化部署成功!
如果在构建的时候遇到如下错误,此错误并不影响项目的正常运行,但会出现黄色感叹号着实让人看着不爽
问题解决方法如下