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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

100道面试必会算法-27-美团2024面试第一题-前缀和矩阵

100道面试必会算法-27-美团2024面试第一题-前缀和矩阵 问题解读 给定一个 n x n 的二进制矩阵,每个元素是 0 或 1。我们的任务是计算矩阵中所有边长为 k 的子矩阵中,包含特定数量 1 的情况。例如,我们希望找到所有边长为 k 的子矩阵中包含 k…

基于springboot实现大学生就业需求分析系统项目【项目源码+论文说明】计算机毕业设计

摘要 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古以…

AOP进阶

黑马程序员JavaWeb开发教程 文章目录 一、通知类型1.1 通知类型1.2 注意事项1.3 PointCut 二、通知顺序2.1 执行顺序 三、切入点表达式3.1 切入点表达式3.2 切入点表达式-execution3.2 切入点表达式- annotation 四、连接点4.1 连接点 一、通知类型 1.1 通知类型 Around&…

File类.Java

一、File类 1,概述🏀🏀🏀 (1) java.io.File类:文件和文件目录路径的抽象表示形式,与平台无关 (2) File类中涉及到关于文件或文件夹的创建、删除、重命名…

AI实时免费在线图片工具3:人物换脸、图像编辑

1、FaceAdapter 人物换脸 https://huggingface.co/spaces/FaceAdapter/FaceAdapter 2、InstaDrag https://github.com/magic-research/InstaDrag

Golang:gin模板渲染base64图片出现#ZgotmplZ

目录 问题描述场景复现解决办法 问题描述 gin模板渲染base64图片出现#ZgotmplZ 场景复现 项目目录 main.go templates/index.htmlgin模板渲染base64图片 package mainimport ("net/http""github.com/gin-gonic/gin" )// base64图片 var imageUrl &qu…

【Tlias智能学习辅助系统】03 部门管理 前后端联调

Tlias智能学习辅助系统 03 部门管理 前后端联调 前端环境 前端环境 链接:https://pan.quark.cn/s/8720156ed6bf 提取码:aGeR 解压后放在一个不包含中文的文件夹下,双击 nginx.exe 启动服务 跨域的问题已经被nginx代理转发了,所以…

Vscode发生鼠标悬停正在加载、无法跳转和提示词的问题

Vscode发生鼠标悬停正在加载、无法跳转和提示词的问题 查看python语言服务器的日志,确定问题。 我的问题是加载的vscode 目录下存在一个很大的数据集目录,导致无法正常工作。 解决办法: 在vscode的pylance设置中,排除对应的目…

使用 EBS 和构建数据库服务器并使用应用程序与数据库交互

实验 4:使用 EBS 实验概览 本实验着重介绍 Amazon Elastic Block Store (Amazon EBS),这是一种适用于 Amazon EC2 实例的重要底层存储机制。在本实验中,您将学习如何创建 Amazon EBS 卷、将其附加到实例、向卷应用文件系统,然后进…

【简单介绍下Milvus,什么是Milvus?】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

【Linux】权限的概念

1.Linux权限的概念 Linux下有两种用户:超级用户(root)、普通用户。 超级用户:可以再linux系统下做任何事情,不受权限限制 普通用户:在linux下做有限的事情,受权限设置。 windows下也有超级用户…

汽车IVI中控开发入门及进阶(二十三):i.MX8

前言: IVI市场的复杂性急剧增加,而TimeToMarket在几代产品中从5年减少到2-3年。Tier1正在接近开放系统的模型(用户可以安装应用程序),从专有/关闭源代码到标准接口/开放源代码,从软件堆栈对系统体系结构/应用层/系统验证和鉴定的完全所有权,越来越依赖第三方中间件和平…

liunx文件系统与日志分析

文章目录 一、基本概念二、日志分析三、实验 一、基本概念 文件是存储在硬盘上的,硬盘上的最小存储单位是扇区每个扇区大小事512字节 inode:元信息(文件的属性 权限 创建者 创建日期) block:块 连续八个扇区组成一块…

JSON Web Token

JWT 什么是JWT JWT(JSON Web Token)是一种用于在各方之间作为JSON对象安全地传输信息的开放标准(RFC 7519)。该信息经过数字签名,因此是可验证和可信的。JWT 可以使用HMAC算法或使用RSA的公钥/私钥对进行签名 JWT的…

HackTheBox-Machines--Nineveh

Nineveh测试过程 1 信息收集 NMAP 端口扫描 80 端口 80端口是服务器的默认页面,无可利用功能点,源代码没有可利用的敏感信息 目录扫描 1.http://10.129.25.123/department 访问/department目录跳转到登录页面,尝试暴力破解,获取…

系统架构设计师【第5章】: 软件工程基础知识 (核心总结)

文章目录 5.1 软件工程5.1.1 软件工程定义5.1.2 软件过程模型5.1.3 敏捷模型5.1.4 统一过程模型(RUP)5.1.5 软件能力成熟度模型 5.2 需求工程5.2.1 需求获取5.2.2 需求变更5.2.3 需求追踪 5.3 系统分析与设计5.3.1 结构化方法5.3.2 面向对象…

stm32启动文件

启动文件由汇编编写,是系统上电复位后第一个执行的程序。主要做了以下工作: 初始化堆栈指针SP_initial_sp 初始化PC指针Reset_Handler 初始化中断向量表 配置系统时钟 调用C库函数_main初始化用户堆栈,从而最终调用main函数去到C的世界 …

虚拟现实环境下的远程教育和智能评估系统(七)

在后端代码的基础上,利用vue框架设计前端界面,至此,用户界面基本成型,后续添加其他进阶功能; 另,前后端交互相关: UsersVO.java package com.roncoo.education.user.feign.interfaces.vo;impor…

【Unity Shader入门精要 第11章】让画面动起来(一)

1. Unity Shader中的时间变量 Shader控制这物体的显示,当向Shader中引入时间变量后,就可以让物体的显示效果随时间发生变化,以实现动画效果。 Unity中常见的时间变量如下表: 变量类型描述_Timefloat4(t/20, t, 2t, 3t)&#xf…

二维数组传参时不用二级指针接收

先放结论: 1. 二维数组数组名指向的类型是 int [x] 类型,int** 指针指向类型是 int* ,如果用二级指针接收会导致访问错误,因为 int [x] 类型和 int* 类型不同。 2. 指向什么类型的指针1就按照该类型的字节数1移动。 最近在学…