使用开源工具:Jenkins,码云gitee,docker,docker页面管理工具PortainerUI,github

各种工具的安装就不必介绍了,首先打开Jenkins,刚安装完Jenkins,可能默认的没有maven,gitee的扩展插件,需要下载扩展插件

安装maven插件

安装gitee插件

然后配置maven地址,git本地仓库分支,jdk路径,gitee链接

全局工具配置,构建maven项目要用到maven中的setting文件,可以在这配置

另外就是本地仓库的设置了,这里有没有使用到github,我忘记了,刚开始用的时候。我记得安装本地GitHub了,也要配置了仓库路径,现在找不到了,可能需要安装,用公钥私钥将本地仓库与远程的gitee绑定,不用再Jenkins中配置。也可能用不到github,因为用的gitee,只需要安装gitee插件就可以了。

测试gitee的连接是否可行,这个步骤如何成功的我也忘记了,可以百度一下

接下来就是新建任务了,选择构建maven项目,配置源码通过git获取,填入码云上项目的地址和用户名及密码,选择分支。

然后勾选post steps,输入build参数

构建后操作,脚本如下,此处我的脚本的作用是,停止已经运行Tomcat,将编译后的文件移到Tomcat中webapps目录下,重启Tomcat。

如果要运行在docker中,要先开启docker服务,创建81,82端口的容器,如果容器在运行,使用portainerUI停止容器的运行。

shell脚本如下

#!/bin/sh
#copy file and restart tomcat
export JAVA_HOME=/usr/local/java/jdk1.8.0_221
export CATALINA_3_HOME=/usr/local/tomcat3
export CATALINA_3_BASE=/usr/local/tomcat3
BUILD_ID=dontkillme
tomcat_path=/usr/local/tomcat3
project=springbootmybatis-0.0.1
war_name=springbootmybatis-0.0.1.war
war_path=http://39.97.230.232:9000/job/Jenkins_War_Test/ws/target
server_port=8080
file_path=/usr/local/jenkins/jenkins_war_test/target

now=$(date +"%Y%m%d%H%M%S")
echo "the shell execute time is ${now}"

echo `lsof -n -P -t -i :${server_port}`
tomcat_pid=`lsof -n -P -t -i :${server_port}`
echo "the tomcat_pid is ${tomcat_pid}"

if [ "${tomcat_pid}" != "" ]; then
kill -9 $tomcat_pid
echo "kill the server"
fi

echo "rm ${tomcat_path}/webapps/${war_name}"
rm ${tomcat_path}/webapps/${war_name}

echo "rm -rf ${tomcat_path}/webapps/${project}"
rm -rf ${tomcat_path}/webapps/${project}

cd $file_path
if [ -f ${war_name} ]; then
cp ${war_name} ${tomcat_path}/webapps
docker run -d -p 81:8080 --name webdemo1 --restart=always tomcat
docker run -d -p 82:8080 --name webdemo2 --restart=always tomcat
docker cp ${war_name} webdemo1:/usr/local/tomcat/webapps
docker cp ${war_name} webdemo2:/usr/local/tomcat/webapps
else
echo "${war_name} unexists"
fi
#sh ${tomcat_path}/bin/startup.sh
echo "server restarted"

之后保存,构建项目,查看控制台输出的信息

最后看控制台最后是否执行成功,如果成功代表配置正确,此总结还算可靠,如果出现错误,可能是某些地方出现了问题,也可能是配置不对,也可能是代码出现的问题。

此博客第一次写,排版什么的都不太好看,写得也很乱,虽然花费时间不少,但是效果不怎样,欢迎大家点评,指出不足之处,以便后续补充,有疑问也可以咨询。

jenkins集成基于maven的javaweb项目,部署到docker容器中的更多相关文章

  1. Linux下将.Asp Core 部署到 Docker容器中

    我们来部署一个简单的例子: 将一个简单的.Aps Core项目部署到Docker容器中并被外网访问 说明: 下面的步骤都是建立在宿主服务器系统已经安装配置过Docker容器,安装Docker相对比较简 ...

  2. 基于maven的javaweb项目模块化开发

    转自:https://my.oschina.net/kingfire/blog/273381 基于maven的javaweb项目模块化开发 引言 考虑团队拥有多个类似项目的情况,比如一些功能差异不大的 ...

  3. 从零开始通过idea插件将一个spring boot项目部署到docker容器里运行

    实操:将一个spring boot项目部署到docker容器里运行 实验需要的环境: 腾讯云+Ubuntu 16.04 x64+idea+插件docker integration+daocloud 第 ...

  4. docker多个容器连接 将 Rails 程序部署到 Docker 容器中

    在docker中使用MySQL数据库 https://yq.aliyun.com/articles/583765 将 Rails 程序部署到 Docker 容器中

  5. 基于maven构建javaweb项目思路梳理及改进

    需要准备的东西: Jdk. myeclipse. maven包 预装jdk环境 1.maven安装及配置: a)      详见url https://www.cnblogs.com/eagle668 ...

  6. 将netcore网站部署到docker容器中

    一.背景 最近一直在看docker的教程,基础知识看的差不多了.理论总要运用于实践,所以下面我们就来把最简单的一个netcore网站托管到docker容器中. 环境:1.docker for wind ...

  7. 【docker部署】基于linux的centos操作系统部署安装docker容器

    一.docker介绍 容器是轻量级的,包含应用运行所需所有东西(代码.库.运行时环境.系统设置,以及依赖关系)的独立的包.每个容器都部署于它自己的 CPU.内存.块 I/O,以及网络资源上,所有这些都 ...

  8. 基于maven的JavaWeb项目构建部署

    需要准备的安装文件: 1 JDk http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html jdk-8 ...

  9. 使用IntelliJ IDEA新建maven的javaWeb项目部署,启动访问index,jsp页面

    对于用惯了eclipse的人,idea其实还挺不一样的,也是摸索了很久,看了好多博客,这里就记录一下,以后肯定经常用!,不过使用熟练了,功能确实非常强大,真的牛! 1 新建maven项目,配置好目录结 ...

随机推荐

  1. Spring源码 05 IOC 注解方式

    参考源 https://www.bilibili.com/video/BV1tR4y1F75R?spm_id_from=333.337.search-card.all.click https://ww ...

  2. Docker 03 镜像命令

    参考源 https://www.bilibili.com/video/BV1og4y1q7M4?spm_id_from=333.999.0.0 https://www.bilibili.com/vid ...

  3. java-重载、包修饰词以及堆栈管理

    1.方法的重写(Override):重新写.覆盖 1)发生在父子类中,方法名称相同,参数列表相同,方法体不同 2)重写方法被调用时,看对象的类型2.重写与重载的区别: 1)重写(Override): ...

  4. C#.NET ORM FreeSql 读取使用 US7ASCII 的 Oracle 数据库中文显示乱码问题

    前言 关于 Oracle US7ASCII 中文乱码的问题,Ado.Net 和 Odbc 无法解决.包括最新的.Net Core..NET6..NET7 都无法解决这个问题. FreeSql 对 Or ...

  5. 年轻的樵夫哟,你掉的是这个免费 8 核 4G 公网Docker 服务器

    Play With Docker 直接打开 https://labs.ply-with-docker.com/ 即可访问 Play With Docker 平台. 注册一个 DockerHub 账号便 ...

  6. flutter系列之:移动端的手势基础GestureDetector

    目录 简介 Pointers和Listener GestureDetector 手势冲突 总结 简介 移动的和PC端有什么不同呢?同样的H5可以运行在APP端,也可以运行在PC端.两者最大的区别就是移 ...

  7. 在cmd中使用doskey来实现alias别名功能

            作为一枚网络工程师,经常就是面对一堆黑框框,也是就是终端.不同操作系统.不同厂家的目录,功能相同但是键入的命令又大不相同,这些差异化容易让脑子混乱.比如华为.思科.H3C.锐捷的设备, ...

  8. 记录一次数据库CPU被打满的排查过程

    1 前言 近期随着数据量的增长,数据库CPU使用率100%报警频繁起来.第一个想到的就是慢Sql,我们对未合理运用索引的表加入索引后,问题依然没有得到解决,深入排查时,发现在 order by id ...

  9. 简单的java代码审计

    描述 很简单的代码审计 java安全--Fastjson反序列化 java安全--SQL注入 Fastjson 反序列化 首先看一下配置文件,对于Maven项目,我们首先从pom.xml文件开始审计引 ...

  10. django_day01

    内容回顾 django处理浏览器的请求流程: 请求发送到wsgi wsgi封装了请求的相关数据(request) django去匹配路径 根据路径判断要执行哪个函数 执行函数 函数执行具体的业务逻辑 ...