docker启动jenkins部署springboot到tomcat(集成:企业微信和邮件通知)

前言:
文章是图文教程,内容略长,你可以选择部分需要集成的内容查看
如果是从零部署,建议仔细阅读每一个步骤

开发环境:
docker : 20.10.2
jenkins : 2.303.1
tomcat : 9.0.48
springboot : 2.5.x
java 8

1.Jenkins部署配置

1.1)下载启动jenkins

docker run -u root -d --name myjenkins -p 9090:8080 -p 50000:50000 -v /home/jenkins/conf:/var/jenkins_home  jenkins/jenkins:lts

-u 赋予管理员权限,因为这里需要用到jenkins_home目录挂载,部分没有权限
- d 后台启动
- - name 自定义容器名称
- p 映射端口,9090:jenkins访问端口,50000代理端口号
- v 挂载jenkins目录

1.2)查看容器启动状态

在这里插入图片描述

1.3)访问jenkins [http://IP地址:9090/]

在这里插入图片描述

1.4)输入管理员密码

获取管理员密码

docker logs 容器id

在这里插入图片描述
复制红框密码到jenkins登录页面,点击继续

1.5)安装插件

在这里插入图片描述
在这里插入图片描述
点击安装推荐的插件,等待几分钟完成即可

1.6)创建jenkins用户

在这里插入图片描述
切记邮箱一定要输入正确的邮箱,这里后面邮件通知会使用到
输入信息点击保存并完成。

1.7)实例配置

在这里插入图片描述
这里不需要额外配置,直接保存并完成

1.8)开始使用jenkins

在这里插入图片描述
到这里配置已初步完成,可以点击开始使用jenkins

1.9)配置全局变量

在这里插入图片描述

1.10)配置Java Jdk 、Git、Maven

在这里插入图片描述
在这里插入图片描述

1.10.1)Java Jdk安装

在这里插入图片描述
点击新增安装->去掉自动安装

1.10.2)查看Java Jdk版本

在这里插入图片描述

查看运行中的容器
docker ps
进入容器内部
docker exec -it 容器id /bin/bash
查看Jdk路径
echo $JAVA_HOME

例如:/opt/java/openjdk 这个就是我们要的Jdk路径,注意前后不要有空格符号
在这里插入图片描述
Jdk配置完成

1.10.3)Git安装

在这里插入图片描述
直接使用jenkins默认自带的git即可

1.10.4)Maven安装

在这里插入图片描述
点击新增Maven->去掉自动安装

1.10.5)查看Maven版本

步骤跟1.10.2一致,先进入容器
如果没有Maven,则手动安装
在这里插入图片描述

 更新资源,以确保能够获取到Maven
 apt update
 安装Maven
 apt install maven -y

- y 同意安装
在这里插入图片描述
时间可能有点久,静待安装完成即可
在这里插入图片描述
安装完成

 查看maven版本
 mvn -v 

/usr/share/maven 复制这个路径到jenkins
在这里插入图片描述
Maven配置完成,点击保存即可

1.11)构建一个测试案例

在这里插入图片描述
在这里插入图片描述
这里以Maven项目为例,自己创建一个SpringBoot Maven项目

1.11.1)项目构建参数配置

在这里插入图片描述

1.11.2)配置git项目源

在这里插入图片描述
这里注意,一定要使用SSL方式访问你的项目仓库,应为后面会设计出发构建的问题。
如果你的仓库不是公开(pubilc)的,必须配置用户账号密码或者SSL私钥。

1.11.3)配置Git SSL密钥

1.11.3.1)创建SSL,以阿里云效Git为例

在这里插入图片描述
在这里插入图片描述
具体获取方式,参考阿里文档说明步骤去实现

1.11.3.2)jenkins配置Git SSL凭证

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

点击确定即可

1.11.4)继续1.11.2的步骤实现项目配置

在这里插入图片描述

1.11.5)安装Generic Webhook Trigger插件,触发构建需要

在这里插入图片描述
在这里插入图片描述
静待安装完成即可

1.11.6)配置用户token,触发构建身份认证

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
复制token保存,待会要用到

1.11.7)配置构建触发器(故名思义,就是git提交项目到仓库自动构建)

在这里插入图片描述
在这里插入图片描述

1.11.8)配置构建环境

在这里插入图片描述

1.11.9)项目构建(clean install -Dmaven.test.skip=true)

在这里插入图片描述

1.11.10)配置构建成功后续操作

1.11.10.1)企业微信通知

在这里插入图片描述
在这里插入图片描述

1.11.10.2)部署项目到tomcat
1.11.10.2.1)安装Deploy to container插件

在这里插入图片描述
静待安装完成即可

1.11.10.2.2)全局配置tomcat用户

在这里插入图片描述
在这里插入图片描述
这里注意你的war路径和名称,这里不教SpringBoot项目打包
到这里就已经完成项目的构建,接下来需要做tomcat的配置,和Git Webhook的配置,才能完成项目的自动部署和访问我们的项目

2.Docker方式部署tomcat

2.1.1)docker下载运行tomcat

docker run -d --name mytomcat -p 8088:8080 tomcat:9.0.48

-d 后台运行方式
- - name 自定义容器名称
-p 映射端口号
在这里插入图片描述
我这里已经下载过了,所以直接运行tomcat,如果是第一次安装tomcat,则等待安装完成会自动启动容器。

2.1.2)进入tomcat容器,配置tomcat设置

查看运行中的容器,找到容器id
docker ps
进入运行中的容器
docker exec -it 容器id /bin/bash

-it 前台运行方式
在这里插入图片描述

2.1.3)配置webapps

由于docker安装的tomcat是简易版,所以webapps下面是没有任何文件,这样我们就没有办法访问我们的tomcat页面,所以我们需要把webapps.dist文件复制到webapps目录下**
在这里插入图片描述

查看tomcat文件
ls
复制文件到webapps目录下
cp -r webapps.dist/* webapps
进入webapps查看文件
cd webapps
查看webapps文件
ls

在这里插入图片描述
修改tomcat/webapps/manager/META-INF/context.xml
这步是为了让你的tomcat用户能够正常访问

tomcat目录下直接进入
cd webapps/manager/META-INF
编辑context.xml文件
vim context.xml

在这里插入图片描述
注视掉下图配置
在这里插入图片描述
esc-> shift+: ->wq 按照步骤退出并保存配置

webapps配置完成

2.1.4)配置tomcat用户

进入tomcat/conf目录下编辑tomcat-users.xml文件
这里会提示没有vim指令

在这里插入图片描述
安装vim指令

先执行更新资源,确保能获取到vim安装包
apt update
执行安装指令
apt install vim -y

安装完成继续前面的操作

进入tomcat/conf目录编辑tomcat-users.xml文件
vim tomcat-users.xml

复制如下配置到tomcat-users最底部

<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<role rolename="manager-jmx"/> <role rolename="manager-script"/> 
<role rolename="manager-status"/>
<user username="admin" password="123456" roles="admin-gui,manager-gui,manager-jmx, manager-script,manager-status"/>

在这里插入图片描述
esc-> shift+: ->wq 按照步骤退出并保存配置

退出容器
在这里插入图片描述
重启容器

查看运行中的容器
docker ps
重启容器
docker restart 容器id

在这里插入图片描述
访问tomcat
这里特别注意,查看你8088端口的防火墙是否有开启,服务器的安全组是否有开放8088端口,缺少一个都访问不了你的tomcat
在这里插入图片描述
在这里插入图片描述
看到这里你的tomcat就部署成功了

3.配置Git Webhook构建触发

3.1)jenkin项目设置

在这里插入图片描述
复制这个链接待会需要
http://JENKINS_URL/generic-webhook-trigger/invoke
在这里插入图片描述
在这里插入图片描述
URL配置格式:
http://jenkins用户名:jenkins用户密码@ip地址:jenkins访问端口号/generic-webhook-trigger/invoke?token=jenkins用户token(步骤1.11.6生成的token)

在这里插入图片描述
配置完成点击测试hook,如图即配置成功。

4.项目构建

首次建议先手动点击立即构建,让jenkins先构建项目包
之后只要git push到仓库,会直接触发构建

在这里插入图片描述
http://ip地址:tomcat端口号/项目名称/接口
在这里插入图片描述

5.邮件通知

5.1)邮箱配置

这里以163邮箱为例
在这里插入图片描述

5.1.1)开启服务协议

IMAP/SMTP服务
POP3/SMTP服务

在这里插入图片描述

5.1.2)短信认证获取授权码

直接微信扫码发送短信认证
在这里插入图片描述
短信认证完成后复制你的授权码待会会使用
在这里插入图片描述
邮箱服务协议配置完成

5.2)jenkins配置邮件通知

在这里插入图片描述
在这里插入图片描述
配置管理员邮箱,即步骤5.1配置的邮箱

5.2.1)配置邮箱参数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
没有看到Use SSL,记得点击右下角的高级按钮
在这里插入图片描述
在这里插入图片描述
邮件模版(我抄的)

Default Content :  
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
</head>

<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
    offset="0">
    <table width="95%" cellpadding="0" cellspacing="0"
        style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
        <tr>
            <td>(本邮件是程序自动下发的,请勿回复!)</td>
        </tr>
        <tr>
            <td><h2>
                    <font color="#0000FF">构建结果 - ${BUILD_STATUS}</font>
                </h2></td>
        </tr>
        <tr>
            <td><br />
            <b><font color="#0B610B">构建信息</font></b>
            <hr size="2" width="100%" align="center" /></td>
        </tr>
        <tr>
            <td>
                <ul>
                    <li>项目名称&nbsp;&nbsp;${PROJECT_NAME}</li>
                    <li>构建编号&nbsp;&nbsp;第${BUILD_NUMBER}次构建</li>
                    <li>SVN&nbsp;版本:&nbsp;${SVN_REVISION}</li>
                    <li>触发原因:&nbsp;${CAUSE}</li>
                    <li>构建日志:&nbsp;<a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
                    <li>构建&nbsp;&nbsp;Url&nbsp;&nbsp;<a href="${BUILD_URL}">${BUILD_URL}</a></li>
                    <li>工作目录&nbsp;&nbsp;<a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
                    <li>项目&nbsp;&nbsp;Url&nbsp;&nbsp;<a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
                </ul>
            </td>
        </tr>
        <tr>
            <td><b><font color="#0B610B">Changes Since Last
                        Successful Build:</font></b>
            <hr size="2" width="100%" align="center" /></td>
        </tr>
        <tr>
            <td>
                <ul>
                    <li>历史变更记录 : <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a></li>
                </ul> ${CHANGES_SINCE_LAST_SUCCESS,reverse=true, format="Changes for Build #%n:<br />%c<br />",showPaths=true,changesFormat="<pre>[%a]<br />%m</pre>",pathFormat="&nbsp;&nbsp;&nbsp;&nbsp;%p"}
            </td>
        </tr>
        <tr>
            <td><b>Failed Test Results</b>
            <hr size="2" width="100%" align="center" /></td>
        </tr>
        <tr>
            <td><pre
                    style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">$FAILED_TESTS</pre>
                <br /></td>
        </tr>
        <tr>
            <td><b><font color="#0B610B">构建日志 (最后 100行):</font></b>
            <hr size="2" width="100%" align="center" /></td>
        </tr>
        <tr>
            <td><pre><textarea cols="80" rows="30" readonly="readonly"
                    style="font-family: Courier New">${BUILD_LOG, maxLines=100}<pre></textarea>
            </td>
        </tr>
    </table>
</body>
</html>

设置邮箱触发机制
在这里插入图片描述
这里选择两个机制触发邮箱通知,构建成功和失败都发送通知
在这里插入图片描述
勾选Enable Debug Mode,用于调试

5.2.2)测试邮箱配置功能

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
经过测试,如果显示Email was successfully sent,则证明邮箱配置成功,你的邮箱会收到一封邮件

5.3)构建项目完成部署发送邮件通知

5.3.1)创建邮件模版(Email Extension Template)

在这里插入图片描述
静待安装完成即可

5.3.2)配置邮件模版

系统管理拉至最底部
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
设置以上参数信息提交即可,其他参数会从全局配置获取,千万别忘记了邮箱的触发机制

5.3.3)为项目配置邮件模版

在这里插入图片描述
在这里插入图片描述
选择步骤5.3.2创建的邮件模版保存即可

5.3.4)测试构建发送邮件通知

在这里插入图片描述
在这里插入图片描述
查看构建日志,出现以上日志则表示邮件发送成功
在这里插入图片描述
在邮箱可以查看构建信息,表示邮箱通知完成

6.企业微信机器人通知

6.1)打开插件管理

在这里插入图片描述

6.2)安装 Qy Wechat Notification插件

在这里插入图片描述
在这里插入图片描述
静待安装完成即可

6.3)全局配置企业微信设置

在这里插入图片描述
在这里插入图片描述
点击保存即可

6.4)创建企业微信机器人

在这里插入图片描述
这里不过多赘述,直接创建一个群,在设置页面可以创建机器人

6.5)测试企业微信机器人通知

重复步骤4,构建项目
在这里插入图片描述
看到上图即已完成企业微信通知配置

7.可能会遇到的异常处理

7.1)企业微信配置异常

javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
原因是Java Jdk8之后 SSLv3、TLSv1、TLSv1.1协议被禁用了
解决方案:
在这里插入图片描述

进入jenkins容器
docker exec -it 容器id /bin/bash
查看JDK安装路径
echo $JAVA_HOME
进入JDK安装目录
cd /opt/java/openjdk
进入JDK配置文件目录
cd conf/security
编辑java.security文件
vim  java.security 

在这里插入图片描述
找到协议配置的地方,把SSLv3、TLSv1、TLSv1.1删除即可
esc-> shift+: ->wq 按照步骤退出并保存配置
最后重启容器

7.2)发送测试邮件测试配置553异常

com.sun.mail.smtp.SMTPSenderFailedException: 553 authentication is required,163 smtp8,DMCowADnvyh74jFhtV00XA–.15673S2 1630659196
在这里插入图片描述
这里主是没有同意smtp认证
在这里插入图片描述
勾选使用SMTP认证即可,即时这里报错,也不会影响你正常构建邮件通知

7.3)构建成功邮件没有发送成功

No emails were triggered
在这里插入图片描述
这里其实是没有设置邮件构建成功之后的triggered操作,核实步骤5.3.2中的模板配置


安装以上步骤一一实现,不会出现大问题,正常部署完全没有问题。

结束语: 可加微信进学习互帮互助群 Benjamin19950304

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值