【工具】Docker安装Jenkins并部署Java项目

【工具】Docker安装Jenkins并部署Java项目

文章目录

  • 【工具】Docker安装Jenkins并部署Java项目
    • 1. 前置条件
    • 2. 安装
    • 3. 创建项目
      • 3.1 配置Maven
      • 3.2 构建项目
      • 3.3 自动部署

1. 前置条件

准备一台云服务器或本地虚拟机,保证必须要java环境,一键安装jdk:

yum install -y java-1.8.0-openjdk.x86_64

2. 安装

1)拉取镜像:

docker pull jenkins/jenkins:lts

2)运行容器:

docker run -d -u root -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins jenkins/jenkins:lts

3)运行成功后,通过浏览器访问Jenkins,弹出如下画面:

image-20240531174239366

在控制台中输入如下命令即可查看密码:

cat /var/jenkins_home/secrets/initialAdminPassword

选择”安装推荐的插件“:

image-20240531174419994

等待安装:

image-20240531174443691

然后就是傻瓜式操作,完成安装。

image-20240531175638075

3. 创建项目

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

输入任务名,任意,然后点击确定:

image-20240531180123963

输入仓库地址和用户名密码:

image-20240531180749708

选择构建步骤:

image-20240531181027867


3.1 配置Maven

直接将maven文件拖到Jenkins挂载的目录下:

image-20240531181750541

注意:拉到linux服务器上的maven的配置文件setting.xml的仓库地址要改成linux的路径地址,否则会报错。

配置Jenkins的maven:

image-20240531181934483

image-20240531182057437

点击保存。


3.2 构建项目

进入工作台,点击构建按钮:

image-20240531182214969

构建成功之后就等于打包成功了。


3.3 自动部署

在系统管理中添加如下配置:

image-20240531214629122

增加构建步骤配置,如下图所示:

image-20240531213553112

image-20240531215242372

具体脚本如下所示:

cp /var/jenkins_home/workspace/zhj-club-subject/zhj-club-subject/zhj-club-starter/target/zhj-club-starter.jar /var/jenkins_home/jar/
#!/bin/bash
APP_NAME=zhj-club-starter.jar
LOG_NAME=zhj-club-starter.logpid=`ps -ef | grep $APP_NAME | grep -v grep|awk '{print $2}'`function is_exist(){
pid=`ps -ef | grep $APP_NAME | grep -v grep|awk '{print $2}'`
if [ -z ${pid} ]; then
String="notExist"
echo $String
else
String="exist"
echo $String
fi
}str=$(is_exist)
if [ ${str} = "exist" ]; then
echo " 检测到已经启动的程序,pid 是 ${pid} "
kill -9 $pid
else
echo " 程序没有启动了 "
echo "${APP_NAME} is not running"
fistr=$(is_exist)
if [ ${str} = "exist" ]; then
echo "${APP_NAME} 已经启动了. pid=${pid} ."
else
source /etc/profile
BUILD_ID=dontKillMe
nohup java -Xms300m -Xmx300m -jar /var/jenkins_home/jar/$APP_NAME   >$LOG_NAME 2>&1 &
echo "程序已重新启动..."
fi

再次构建项目,此时Jenkins就不止会打包项目,还会启动项目。

注意:确保目录脚本文件中的目录已经创建,否则不会启动项目。

发现项目已经运行起来了:

image-20240531222740524

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/19964.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring 框架:Java 企业级开发的基石

文章目录 序言Spring 框架的核心概念Spring 框架的主要模块Spring Boot:简化 Spring 开发Spring Cloud:构建微服务架构实际案例分析结论 序言 Spring 框架自 2002 年发布以来,已经成为 Java 企业级开发的标准之一。它通过提供全面的基础设施…

相机等效焦距

1. 背景 物理焦距我们很熟悉,但是在接触实际的相机参数时,相机厂家会提到一个参数等效焦距,甚至有时候不提供物理焦距,这时候如果我们得到真实的物理焦距需要进行一定的转换.在介绍两者之间的转换关系前,先介绍一下等效焦距的由来. 如上图,假设在某一个镜头,其成像面会出现图…

C++ vector的使用和简单模拟实现(超级详细!!!)

目录 前言 1.STL是什么 2.vector使用 2.1 vector简介 2.2 常用接口函数 1. 构造函数 2.operator[ ]和size,push_back 3. 用迭代器进行访问和修改 4. 范围for遍历 5.修改类型函数 pop_back find insert erase 6. 容量相关函数capacity resize reserve 3.…

05.爬虫---urllib与requests请求实战(GET)

05.urllib与Requests请求实战GET 1.Urllib模块2.Requests模块3.对比4.实战 GET请求 Python中的GET请求也是HTTP协议中的一种请求方法,用于向服务器请求数据。与POST请求不同,GET请求将数据以查询字符串的形式附加在URL后面,而不是封装在请求体…

Windows10专业版系统安装Hyper-V虚拟机软件

Windows10专业版系统安装Hyper-V虚拟机软件 适用于在Windows10专业版系统安装Hyper-v虚拟机软件。 1. 安装准备 1.1 安装平台 Windows 10 1.2. 软件信息 软件名称软件版本安装路径windowswindows 10 专业版Hyper-vHyper-v 2. Hyper-v搭建 2.1打开cmd软件 2.2打开控制面…

20 厂商文档学习资料查询

01 厂商介绍 新华三(H3C) 新华三是一家专注于IT基础设施产品和解决方案的公司,提供从网络设备到数据中心解决方案的全套服务。它是中国领先的网络解决方案供应商之一,业务涵盖企业网、数据中心、云计算等多个领域。 华为&#x…

Golang dlv远程debug

1. 前期准备 1.1. dlv安装 1.1.1. go install安装 go install github.com/go-delve/delve/cmd/dlvlatest1.1.2. 手动安装 下载 linuxx86 架构 二进制文件 📎dlv.linux.x86.zip zip文件,下载后( 如果没权限,记得 执行chmod ax…

网络性能测试工具:iperf3介绍

文章目录 前言一、iperf3 的安装和使用下载和安装参数说明 二、iperf3 测试服务端启动客户端启动服务端输出反向测试客户端服务端 前言 新接触的网络环境如何评估网络带宽和吞吐量呢,有的项目没有对业务流量进行合理规划,服务或者中间件出口带宽经常有被…

Unity屏幕分辨率适配方法

Unity屏幕分辨率适配方法 在Unity中实现屏幕分辨率适配,可以使用以下几种方法: 1. 使用Canvas Scaler 创建Canvas: 在Unity编辑器中创建一个Canvas,它将自动添加一个Canvas Scaler组件。 设置Canvas Scaler: 选择Ca…

golang语言的gofly快速开发框架如何设置多样的主题说明

本节教大家如何用gofly快速开发框架后台内置设置参数,配置出合适项目的布局及样式、主题色,让你您的项目在交互上加分,也是能帮你在交付项目时更容易得到客户认可,你的软件使用客户他们一般都是不都技术的,所以当他们拿…

prometheusgrafananode_export搭建监控平台

一、环境要求 1、docker安装docker环境 2、docker安装prometheus 3、docker安装grafana 4、node-exportor(安装在被测服务器上) 5、我的服务器是Ubuntu 二、docker 安装prometheus 1、下载Prometheus镜像 docker pull prom/prometheus 2、检查端口是否被占用 安装netstat命…

在Github找自己想要的的项目

点击进入github 1.首先进入到github的首页;搜索框搜(先关键字搜索)in:name 你的找的项目 比如: in:name Sping Boot2.进一步检索(点赞数高的) in:name Sping Boot star:>1000 3.如何要找最新的&…

初级硬件工程师,工作中遇到的问题list

1)元器件选型 刚进公司一般情况下是不会让新人选型的,最起码一年之后才会逐步接触,需要耐得了寂寞和坐冷板凳。但是有一种情况除外,人手紧张,并且电路板简单,会让新人选择简单的元器件,比如按键…

2024.5.31每日一题

LeetCode 找出缺失的重复数字 题目链接:2965. 找出缺失和重复的数字 - 力扣(LeetCode) 题目描述 给你一个下标从 0 开始的二维整数矩阵 grid,大小为 n * n ,其中的值在 [1, n2] 范围内。除了 a 出现 两次&#xff…

Python开发 我的世界 Painting-the-World: Minecraft 像素图片生成器

简介 Painting-the-World 是一款创新的工具,专为《我的世界》(Minecraft) 玩家及创作者设计,旨在将数字图片转变为游戏内的像素艺术。通过利用 RCON (Remote Console) 协议,本项目可以直接与《我的世界》服务器对话,根据输入的图…

双点双向重发布

1、由于ASBR在重发布路由条目时,将清除原有协议携带的度量,添加新协议的种子度量;一日使用双点或多点重发布,可能出现选路不佳;-----路由策略来解决 2、当优先级不同的两种协议在进行多点双向重发布后,可能第一台ASBR将A协议发布到B协议后&a…

Android MediaCodec 简明教程(九):使用 MediaCodec 解码到纹理,使用 OpenGL ES 进行处理,并编码为 MP4 文件

系列文章目录 Android MediaCodec 简明教程(一):使用 MediaCodecList 查询 Codec 信息,并创建 MediaCodec 编解码器Android MediaCodec 简明教程(二):使用 MediaCodecInfo.CodecCapabilities 查…

万户ezEIP企业管理系统 /member/success.aspx 命令执行漏洞复现

0x01 产品简介 万户ezEIP是一种企业资源规划软件,旨在帮助企业管理其各个方面的业务流程。它提供了一套集成的解决方案,涵盖了财务、供应链管理、销售和市场营销、人力资源等各个领域。 0x02 漏洞概述 万户ezEIP企业管理系统 /member/success.aspx 接口处存在命令执行漏洞…

可变参数

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在Python中,还可以定义可变参数。可变参数也称不定长参数,即传入函数中的实际参数可以是任意多个。 定义可变参数时&#xf…

IT运维保障企业网络畅通

目录 一、网络维护的基础知识 1.1 定期检查硬件设备 1.2 软件更新与补丁管理 二、网络优化技巧 2.1 带宽管理 2.2 流量分析与监控 2.3 网络拓扑优化 三、快速故障排除的技巧 3.1 制定故障排除流程 3.2 使用故障排除工具 3.3 定期培训与演练 在当今数字化时代&#x…