Jenkins+Gitlab+Springboot项目部署Jar和image两种方式

news2024/9/23 5:21:36

Springboot环境准备

利用spring官网快速创建springboot项目。

 添加一个controller

package com.example.demo;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
    @RequestMapping("/ping")
    public String ping(){
        System.out.println("==============================ping");
        System.out.println("==============================ping");
        return "ok";
    }
}

Gitlab准备

具体安装参考之前的文章,《容器化部署Gitlab》

首先进行中文显示设置

查看所有项目:

 创建local-springboot-demo项目:

本地玩可以设置公开权限。 如果团队根据具体情况设置不同的访问权限。

 本地idea打开,上面下载的demo代码包,并创建git仓库。

 管理远程仓库,

 

 其中需要添加gitlab认证,

Jenkins部署jar

新建jenkins任务

 

[root@localhost springboot-demo]# cat start.sh 
#!/bin/bash
nohup /usr/local/jdk1.8.0_201/bin/java -jar demo-0.0.1-SNAPSHOT.jar>test.log 2>&1 &
sleep 40

 

Jenkins部署docker

 

 

 

 docker-build.sh

[root@localhost springboot-demo]# cat docker-build.sh 
#!/bin/bash -il
#docker rm -f app_docker
#sleep 1
#docker rmi -f app_docker:1.0
#sleep 1
#mvn clean install -Dmaven.test.skip=true
#sleep 1
docker build -t app_docker .

docker-run.sh

[root@localhost springboot-demo]# cat docker-run.sh 
#!/bin/bash
if [[ -n $(docker ps -q -f "name=^app_docker$") ]];then
	docker stop app_docker
	echo "app_docker has stoped"
	sleep 5
	docker rm app_docker
	echo "app_docker has rm"
else
	echo "app_docker not run"
fi
docker run -d -p 9999:8899 --name app_docker app_docker

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

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

相关文章

新华三眼中的AI天路

ChatGPT的火爆,在全球范围内掀起了新一轮的AI风暴。如今,各行各业都在讨论AI,各个国家都在密集进行新一轮的AI基础设施建设与技术投入。 但眼前的盛景并非突然到来,就拿这一轮大模型热潮来说,谷歌早在2018年底就发布了…

协议速攻 IIC协议详解

介绍 IIC是一种 同步 半双工 串行 总线 同步 指的是同一根时钟线(SCL) 半双工 可以进行双向通信,但是收发不能同时进行,发的时候禁止接收,接的时候禁止发送 串行 数据是一位一位发送的 总线 两根线(SCL SDA)可以接多个IIC类型器件&#…

《统计学习方法》——逻辑斯蒂回归和最大熵模型

参考资料: 《统计学习方法》李航通俗理解信息熵 - 知乎 (zhihu.com)拉格朗日函数为什么要先最大化? - 知乎 (zhihu.com) 1 逻辑斯蒂回归 1.1 逻辑斯蒂回归 输入 x ( x ( 1 ) , x ( 2 ) , ⋯ , x ( n ) , 1 ) T x(x^{(1)},x^{(2)},\cdots,x^{(n)},1…

【动态规划算法练习】day11

文章目录 一、1312. 让字符串成为回文串的最少插入次数1.题目简介2.解题思路3.代码4.运行结果 二、1143. 最长公共子序列1.题目简介2.解题思路3.代码4.运行结果 三、1035. 不相交的线1.题目简介2.解题思路3.代码4.运行结果 总结 一、1312. 让字符串成为回文串的最少插入次数 1…

DevOps系列文章之 设计一个简单的DevOps系统

前置条件 gitlab gitlab-runner k8s docker 1. gitlab创建群组 创建群组的好处是,对项目进行分组,群组内的资源可以共享,这里创建了一个tibos的群组 2. 在群组创建一个项目 这里创建一个空白项目,项目名为Gourd.Test,将项目克隆到本地,然后在该目录下创建一个.net core3.1的w…

Spring Cloud Alibaba Seata源码分析

目录 一、Seata源码分析 1、Seata源码入口 1.1、2.0.0.RELEASE 1.2、2.2.6.RELEASE 2、Seata源码分析-2PC核心源码 3、Seata源码分析-数据源代理 3.1、数据源代理DataSourceProxy 4、Seata源码分析- Seata服务端(TC)源码 一、Seata源码分析 Sea…

P1dB、IIP3、OIP3、IMD定义及关系

P1dB 1分贝压缩输出功率。放大器有一个线性动态范围,在这个范围内,放大器的输出功率随输入功率线性增加。随着输入功率的继续增加,放大器进入非线性区,其输出功率不再随输入功率的增加而线性增加,也就是说,…

【新星计划·2023】Linux文件权限讲解

作者:Insist-- 个人主页:insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注 前言 这篇文章,将带你详细的了解一下 Linux 系统里面有哪些重要的文件?。 不过,每个文件都有相当多的属性…

ROS学习篇之传感器(二)IMU(超核IMU HI266)

文章目录 一.确定IMU型号二.安装驱动1.找到驱动的包2.解压该压缩包3.安装步骤说明4.具体安装5.检查IMU的usb接口是否插到电脑 三.在RVIZ中的显示1.复制示例下的src里的文件复制到自己的src下2.自己的文件目录3.尝试编译一下4.示例的文件说明5.运行Demo6.配置Rviz 四.查看IMU的实…

【深入了解系统性能优化】「实战技术专题」全方面带你透彻探索服务优化技术方案(系统服务调优)

全方面带你透彻探索服务优化技术方案(服务器系统性能调优) 调优意义计划分析 流程相关分析优化分析Nginx请求服务日志将请求热度最高的接口进行优化异步调用优化方式注意要点 分析调用链路追踪体系建立切面操作分析性能和数据统计存储相关的调用以及耗时…

Pycharm中画图警告:MatplotlibDeprecationWarning

前言: \textcolor{Green}{前言:} 前言: 💞这是由于在python中画图出现的问题,一般不会有错。因为它只是个警告,但是我们也可以知道解决这个问题的方法,防止后面出问题的时候知道怎么解决。 前因…

窗口函数 OVER(PARTITION BY ...)

开窗函数的语法结构:分析函数() over(partition by 分组列名 order by 排序列名 rows between 开始位置 and 结束位置) over()函数中包括三个函数:分区partition by 列名、排序order by 列名、指定窗口范围rows between 开始位置 and 结束位置 rows bet…

Win10共享文件|文件夹 电脑之间快速传输文件的方法

一、设置共享的文件或文件夹 1、A电脑上的文件要共享 进行如下设置: 右击要共享的就文件或文件夹->属性->"共享 "选项卡->"共享"按扭->选择共享的用户 下拉选择"Everyone"->单击"添加"按扭->根据需要设…

PVE8.0内核构建支持IOMMU拆分

PVE直通SATA控制器给群晖的时候,发现网卡、USB、SATA控制器都在一个IOMMU上。 直通完了,PVE直接失联了。这肯定不行。百度了一下说是要编译内核把IOMMU拆开。下面记录一下编译内核的过程。 准备编译环境 我直接用pve物理机编译,怕破坏环境的…

【Spring/Java项目】如何利用swagger-parser解析yaml中的api请求类型、注释、接口名等等(含示例代码)

手打不易,如果转摘,请注明出处! 注明原文:https://zhangxiaofan.blog.csdn.net/article/details/129167371 目录 前言 官方文档 项目配置 示例代码 测试文件 解析代码 运行结果 前言 用到这个工具是因为项目需要&#xff0…

构造函数与成员变量初始化

1 为何需要定义构造函数? 构造函数的主要目的在于对成员变量进行初始化,确保类对象具有良好的初始状态。 2 构造函数对成员变量的初始化 接下来,我们将完善前文中提到的几个构造函数,使其能够有效地完成成员变量的初始化工作。 …

【趣说冒泡排序】

前言 在计算机科学中,排序算法是一种常见且重要的算法。排序算法的目标是将一组无序的数据按照一定的规则进行重新排列,以便更方便地进行搜索、查找或其他操作。 冒泡排序(Bubble Sort)是最简单的排序算法之一,它的原…

软件测试技能,JMeter压力测试教程,统一随机定时器/高斯随机定时器(十九)

目录 前言 一、统一随机定时器 1、统一随机定时器(Uniform Random Timer) 2、设置延迟时间 二、高斯随机定时器 1、高斯随机定时器Gaussian Random Timer 2、设置延迟时间 前言 如果想加个随机等待时间可以用到 jmeter 里面的统一随机定时器&…

WPF 样式设计总结

文章目录 行内样式页内样式样式继承控件样式只能继承一个 局部样式窗口控件和用户控件直接的区别使用代码用户控件引用 全局样式 行内样式 我们新建一个简单的样式 <Grid><TextBox Text"我是样式" FontSize"100" /></Grid>这种属性直接…

【QT】常用组件及其用法总结

前面我们看了如何用QT实现纯代码和纯Designer工具的图形化的页面设计&#xff0c;下面我们来看看如何用QT结合两者实现混合界面设计&#xff0c;主要是学习使用一些常用的组件。 目录 信号和槽 菜单栏、状态栏和工具栏 QLabel setGeometry Button pushbutton CheckBox…