使用开源工具: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. django自带的序列化组件

    1.什么是序列化组件 在django中,自带一个序列化组件,它是用来将数据进行整理.转化成特定的为一个特定的格式(比如json数据格式),然后传输给前端,以便前端对数据进行处理操作. 2.为什么要用序 ...

  2. spring boot 中英文官方文档

    中文文档:http://oopsguy.com/documents/springboot-docs/1.5.4/index.html#boot-features 英文官方文档:https://docs ...

  3. HCIA-Datacom 2.1 实验一:IPv4编址及IPv4路由基础实验

    实验目的 掌握接口IPv4地址的配置方法 理解LoopBack接口的作用与含义 理解直连路由的产生原则 掌握静态路由的配置方法并理解其生效的条件 掌握通过PING工具测试网络层联通性 掌握 ...

  4. HTML初学者小知识2

    网页内嵌 代码以及演示如下 代码 <div id="tab_1"> <iframe src="div.html" height="5 ...

  5. 【MySQL】从入门到精通7-设计多对多数据库

    上期:[MySQL]从入门到精通6-MySQL数据类型与官方文档 第一章:理解 和一对多不一样,多对多意思是,一个数据可以被不同的数据关联. 如果是一对多,我们还可以用外键来达成. 但是现在我们是多对 ...

  6. 【HTML】学习路径2-设置文档类型、网页编码、文件注释

    第一章:设置文档类型 我们通常在html文件最前面写一行: <!DOCTYPE html> 这玩意有啥用? https://developer.mozilla.org/zh-CN/docs ...

  7. 数据库基础操作 part1

    初识数据库 数据库相关概念 数据库管理软件: 本质就是一个C/S架构的套接字程序 服务端套接字 客户端套接字 操作系统: Linux 操作系统: 随意 计算机(本地文件) 计算机硬件 应用流程: 服务 ...

  8. docker_NG部署前端总结

    Dockerfile 写法 FROM nginx MAINTAINER gradyjiang "jiangzhongjin@hotmail.com" ENV LANG C.UTF- ...

  9. Andrej Karpathy | 详解神经网络和反向传播(基于 micrograd)

    只要你懂 Python,大概记得高中学过的求导知识,看完这个视频你还不理解反向传播和神经网络核心要点的话,那我就吃鞋:D Andrej Karpathy,前特斯拉 AI 高级总监.曾设计并担任斯坦福深 ...

  10. Python数据科学手册-Pandas:累计与分组

    简单累计功能 Series sum() 返回一个 统计值 DataFrame sum.默认对每列进行统计 设置axis参数,对每一行 进行统计 describe()可以计算每一列的若干常用统计值. 获 ...