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项目,配置好目录结 ...
随机推荐
- 程序员的专属浪漫——用3D Engine 5分钟实现烟花绽放效果
谁说程序员不懂浪漫? 作为程序员,用自己的代码本事手搓一个技术感十足的惊喜,我觉得,这是不亚于车马慢时代手写信的古典主义浪漫. 那么,应该怎样创作出具有自我身份属性的浪漫惊喜呢? 玩法很多,今天给大家 ...
- 125. 验证回文串--LeetCode
来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/valid-palindrome 著作权归领扣网络所有.商业转载请联系官方授权,非商业转载请注明出处. ...
- Golang基础教程
以下使用goland的IDE演示,包含总计的golang基础功能共20个章节 一.go语言结构: 二.go基础语法: 三.变量 四.常量 五.运算符 六.条件语句 七.循环 八.函数 九.变量作用域 ...
- Shell第一章《变量》
shell前言 什么是shell shell-'壳' 命令解释器,一种应用程序 shell语言特点 SHELL语言是指UNIX操作系统的命令语言,同时又是该命令语言的解释程序的简称. Shell本身是 ...
- 【SWIFT】从零开始的SWIFT语言学习笔记-2:简单值、数组与字典
1.0.3 简单值.数组与字典 知识点: 使用var创建变量 var myVariable = 65 myVariable = myVariable + 1 使用let创建常量 let myConst ...
- 报错:①Tog goal specified requires a project to execute but there is no POM in this directory......②说类HelloWorld是公共的, 应在名为 HelloWorld.java 的文件中声明 public class HelloWorld......
在运行Maven的命令时,在DOS窗口里面必须把目录切换到项目的根部,要不然命令是找不到目的地. 下图是错误示范,项目在Demo02这个目录里,就必须将目录切换到Demo02下,否则DOS窗口只有飘红 ...
- 【面试题】js实现将excel表格copy到页面
js实现将excel表格copy到页面 点击打开视频讲解更加详细 其实最核心的技术,还是copy的是我们粘贴板上的数据 就像平常怎么粘贴复制其他的数据一样,只是我们在excel粘贴的是一个表格数据 这 ...
- 记一次 Sedona(GeoSpark) 空间计算优化
项目需求需要空间计算能力,开始选型Sedona(GeoSpark)来完成, 需求需要每一条数据在满足某条件的情况下,去查找某张表进行空间匹配,找到离这个点(point)最近的一条道路(lineStri ...
- Kubernetes后台数据库etcd:安装部署etcd集群,数据备份与恢复
目录 一.系统环境 二.前言 三.etcd数据库 3.1 概述 四.安装部署etcd单节点 4.1 环境介绍 4.2 配置节点的基本环境 4.3 安装部署etcd单节点 4.4 使用客户端访问etcd ...
- 微服务低代码Serverless平台(星链)的应用实践
导读 星链是京东科技消金基础研发部研发的一款研发效能提升的工具平台,面向后端服务研发需求,尤其是集成性.场景化.定制化等难度不太高.但比较繁琐的需求,如服务前端的后端(BFF).服务流程编排.异步消息 ...