docker Jenkins实现springboot项目自动化部署

一、前言

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自行构建后,再刷新浏览器
在这里插入图片描述

项目自动化部署成功!

如果在构建的时候遇到如下错误,此错误并不影响项目的正常运行,但会出现黄色感叹号着实让人看着不爽
在这里插入图片描述在这里插入图片描述

问题解决方法如下
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值