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

news2025/1/19 11:20:14

【工具】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.log

pid=`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"
fi

str=$(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.coloradmin.cn/o/1719790.html

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

相关文章

ADuM1201可使用π121U31间接替换π122U31直接替换

ADuM1201可使用π121U31间接替换π122U31直接替换 一般低速隔离通信150Kbps电路可使用π121U31,价格优势较大。速度快的有其它型号可达10M,200M,600M。 本文主要介绍ADUM1201,替换芯片π121U31简单资料请访问下行链接 只要0.74元的双通道数字隔离器,1T1…

Unity实现简单的第一人称控制

先看效果 实现方式 1.首先创建一个脚本 2.编辑脚本内容 付上脚本代码 private float RotationX 0;public float speed 2f;//移动速度// Use this for initializationvoid Start(){Cursor.lockState CursorLockMode.Locked;//锁定鼠标到中心点Cursor.visible false;//隐藏鼠…

OceanBase开发者大会实录-李楠:4条路径+6大方案,关键业务系统数据库的升级之路

本文来自2024 OceanBase开发者大会,OceanBase 金融与政企事业部解决方案总监李楠的演讲实录 ——《关键业务系统分布式数据库升级路线选择和技术演进之路》。完整视频回看,请点击这里>> 大家好,我是 OceanBase 金融与政企事业部…

AI盒子在智慧加油站的应用

方案背景 为规范加油站作业,保障人民生命财产安全,《加油站作业安全规范》(AQ 3010-2007)中第五条规定:卸油作业基本要求,明确防静电、防雷电、防火、人员值守、禁止其他车辆及非工作人员进入卸油区。 痛点…

初识java——javaSE(8)异常

文章目录 一 异常的概念与体系结构1.1 什么是异常?1.2 异常的体系结构!1.3 编译时异常与运行时异常与Error编译时异常:异常声明:throws关键字 运行时异常:什么是Error? 二 处理异常2.1 异常的抛出:throw(注…

前端从零到一开发vscode插件并发布到插件市场

前端从零到一开发vscode插件并发布到插件市场 背景目标成果展示一条龙实现过程安装插件脚手架和工具创建项目运行调试打包第一次打包前的必要操作 发布第一次发布前账号准备注册Azure DevOps发布账号-获取token注册vscode开发者账号终端登录vsce 发布方式2-手动上传插件 进阶开…

社区来稿|眼手交互能定义下一代人机交互范式吗?

以下文章来源于XR交互技术观察 ,作者Eis4TY 前面的话: 推荐一篇来自 Rokid 产品经理 Eis4TY 的文章。文章探讨了眼手交互技术的原理、应用现状以及未来的发展趋势。作者提出:「在 XR 设备上,眼手交互不是最终答案,而…

lipo制作通用版本静态库

文章目录 目的了解多架构的maclipo如何利用lipo编译通用版本静态库lipo 命令整理扩展目的 主要是使用lipo命令在macOS上创建通用版本的静态库(.a文件),来支持多种架构,如arm64,x86_64。 学习目的: 了解mac 不同架构arm64, x86_64了解lipo命令了解多架构的mac 随着appl…

01--nginx基础

前言: 本文用来整理一下nginx的用法,应该是本人中间件专栏的第一篇文章,这里开始概念和实操将会同样重要,面试时基本概念的理解非常重要,深有体会,不会再让概念成为压死骆驼的稻草。 1、nginx简介 Nginx…

【算法】宵暗的妖怪

✨题目链接: 宵暗的妖怪 ✨题目描述 露米娅作为宵暗的妖怪,非常喜欢吞噬黑暗。这天,她来到了一条路上,准备吞噬这条路上的黑暗。这条道路一共被分为n 部分,每个部分上的黑暗数量为ai 。露米娅每次可以任取 连续的 未被…

java中回调与Timer类的使用

回调:回调(callback)是一种常见的程序设计模式。在这种模式中,可以指出某个特定事件发生时应该采取的动作。 Timer类:java.swing包中的Timer类,可以使用它在给定的时间间隔时发出通告。如程序中有一个时钟&#xff0c…

12.RedHat认证-Linux文件系统(下)

12.RedHat认证-Linux文件系统(下) swap虚拟内存 我加一个硬盘做实验sdc # 创建交换分区(不用做成逻辑卷也能灵活分区) [rootcentos8 ~]# fdisk /dev/sdc -l Disk /dev/sdc:10 GiB,10737418240 字节,20971520 个扇区 …

《逆水寒》手游周年庆,热度不减反增引发热议

易采游戏网5月31日最新消息:随着数字娱乐时代的飞速发展,手游市场的竞争愈发激烈。在这样的大背景下,《逆水寒》手游以其独特的古风武侠世界和深度的社交体验,自上线以来便吸引了无数玩家的目光。如今,这款游戏迎来了它…

C盘文件被格式化了,要怎么恢复?

C盘通常是操作系统(如Windows)的默认安装目录。它包含了操作系统的核心文件、驱动程序及系统所需的各种支持文件。这些文件对于计算机的正常运行至关重要。但在使用的过程中,有时可能会因为各种原因导致C盘被格式化,从而丢失了这些重要文件。这无疑是一个…

智慧车站管理:提升地铁站新质生产力的策略

应用图扑自研产品 HT for Web 结合 BIM 技术,搭建轻量化的 WebGIS 智慧车站系统。 该系统通过整合轨道交通信息,实现了车站数据的多维互联与融合。提升了车站信息管理效率和运营效能,并优化了乘客出行体验。对构建智能、高效、环保的轨道交通…

数字IC基础:主要的FPGA厂商

相关阅读 数字IC基础https://blog.csdn.net/weixin_45791458/category_12365795.html?spm1001.2014.3001.5482 Xilinx(现已被AMD收购) Xilinx, 成立于1984年,是FPGA(现场可编程门阵列)技术的创始者和市场领导者。该公…

中学生学人工智能系列:如何用AI学化学

经常有读者朋友给公众号《人工智能怎么学》留言咨询如何使用人工智能学习语文、数学、英语、化学等科目。这些都是中学教师、中学生朋友及其家长们普遍关注的问题。仅仅使用留言回复的方式,不可能对这些问题做出具体和透彻的解答,因此本公众号近期将推出…

什么是机器人离线编程? 衡祖仿真

一、什么是机器人离线编程? 机器人离线编程是自动化生产的重要一环。离线编程指,在建立了机器人的三维模拟场景后,经由软件仿真计算,生成控制机器人运动轨迹,进而生成机器人的控制指令。工程师可以由此来控制物理环境…

高级Java开发者的自我修养:深入剖析JVM垃圾回收机制及面试要点

在探索Java虚拟机(JVM)的奥秘过程中,垃圾回收机制(GC)是一个不可或缺的话题,尤其在面对大型应用和系统优化时显得尤为重要。JVM的自动内存管理是Java编程语言中一项革命性的特性,它大大简化了程…

优思学院|作为质量工程师,需要考哪些证书?别浪费你的气力,一张就够!

质量工程师做什么呢?他们的主要任务就是确保产品和服务的质量,以满足客户需求并超越竞争对手。尽管市场上有各种各样的质量管理认证,但优思学院认为,专注于六西格玛的学习和认证就足够了。 为什么选择六西格玛? 第一…