jenkins集成基于maven的javaweb项目,部署到docker容器中
使用开源工具: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容器中的更多相关文章
- Linux下将.Asp Core 部署到 Docker容器中
我们来部署一个简单的例子: 将一个简单的.Aps Core项目部署到Docker容器中并被外网访问 说明: 下面的步骤都是建立在宿主服务器系统已经安装配置过Docker容器,安装Docker相对比较简 ...
- 基于maven的javaweb项目模块化开发
转自:https://my.oschina.net/kingfire/blog/273381 基于maven的javaweb项目模块化开发 引言 考虑团队拥有多个类似项目的情况,比如一些功能差异不大的 ...
- 从零开始通过idea插件将一个spring boot项目部署到docker容器里运行
实操:将一个spring boot项目部署到docker容器里运行 实验需要的环境: 腾讯云+Ubuntu 16.04 x64+idea+插件docker integration+daocloud 第 ...
- docker多个容器连接 将 Rails 程序部署到 Docker 容器中
在docker中使用MySQL数据库 https://yq.aliyun.com/articles/583765 将 Rails 程序部署到 Docker 容器中
- 基于maven构建javaweb项目思路梳理及改进
需要准备的东西: Jdk. myeclipse. maven包 预装jdk环境 1.maven安装及配置: a) 详见url https://www.cnblogs.com/eagle668 ...
- 将netcore网站部署到docker容器中
一.背景 最近一直在看docker的教程,基础知识看的差不多了.理论总要运用于实践,所以下面我们就来把最简单的一个netcore网站托管到docker容器中. 环境:1.docker for wind ...
- 【docker部署】基于linux的centos操作系统部署安装docker容器
一.docker介绍 容器是轻量级的,包含应用运行所需所有东西(代码.库.运行时环境.系统设置,以及依赖关系)的独立的包.每个容器都部署于它自己的 CPU.内存.块 I/O,以及网络资源上,所有这些都 ...
- 基于maven的JavaWeb项目构建部署
需要准备的安装文件: 1 JDk http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html jdk-8 ...
- 使用IntelliJ IDEA新建maven的javaWeb项目部署,启动访问index,jsp页面
对于用惯了eclipse的人,idea其实还挺不一样的,也是摸索了很久,看了好多博客,这里就记录一下,以后肯定经常用!,不过使用熟练了,功能确实非常强大,真的牛! 1 新建maven项目,配置好目录结 ...
随机推荐
- python-GUI键盘小工具
一.tkinter GUI界面 二.实现功能 连接设备.设备上电.设备使能.键盘按键控制关节移动.配置关节移动速度和角度 三.python源码 1 #coding=utf-8 2 import ms ...
- 成为 Apache 贡献者,从提交第一个简单 PR 开始!
开源之路,PR 走起 ! ---全球最大同性交友社区 1 fork 以下实例以 incubator-dolphinscheduler 海豚调度为例进行操作 从远端仓库* https://github. ...
- CF593D Happy Tree Party(不用树剖)
题面 题解 我们发现,对于除法有效的xi最小为2,yi最多除log次就会变成0,所以我们可以每次找路径上下一个>=2的xi,暴力除,当发现y=0时就停止 于是我们维护每个点向上走一直走到根最近的 ...
- 【Maven】Maven的安装和配置
1.Maven的下载 方式一: 官网:Maven – Welcome to Apache Maven 尽量下载3.5版本,我个人3.8版本从来没用配置成功过. 方式二: 我用的是3.5版本,下载3. ...
- MySQL5.7.35的安装
Step①: 下载安装包,MySQL下载地址:百度 Step②: 解压至你的安装路径,我个人是在E盘存放. Step③: 配置环境变量. ①:在系统属性中,点击环境变量. ②:找到环境变量-> ...
- OpenJudge 1.5.28 分离整数的各个数位
28:分离整数的各个数位 总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个整数,要求从个位开始分离出它的每一位数字. 输入 输入一个整数,整数在1到100000000之间. 输出 ...
- paddleocr安装与图片识别快速开始
本文首发我的个人博客:paddleocr安装教程快速开始 1. 安装Python环境 wget https://mirrors.huaweicloud.com/python/3.8.5/Python- ...
- 基于OpenHarmony的智能喝水提醒器
一.硬件说明 Neptune OpenHarmony物联网IOT模组Wi-Fi&蓝牙双模开发板.超声波模块.蜂鸣器模块.杜邦线若干 开发板相关资料:https://gitee.com/hiho ...
- 实践torch.fx第二篇-fx量化实操
好久不见各位,哈哈,又鸽了好久. 本文紧接上一篇<实践torch.fx第一篇--基于Pytorch的模型优化量化神器>继续说,主要讲如何利用FX进行模型量化. 为什么这篇文章拖了这么久,有 ...
- es根据关键词查看某个指定索引的内容并删除
# 根据关键词查询某个索引的内容 GET product/_search?q=title:测试商品 {"query":{"match_all":{}}} # 根 ...