Jenkins持续集成实现过程(简易版)

news2024/12/23 4:35:11

我就用一台服务器模拟,gitlab用公司现成的,jenkins安装发版都是在同一台服务器上

安装Jenkins(Docker)

宿主机上创建数据映射目录

mkdir /data/jenkins

给映射目录权限,不然jenkins用不了

chmod -R 777 /data/jenkins/

启动Jenkins并挂载目录

docker run -d -p 8888:8080 --name=jenkins --restart=always -v /data/jenkins/:/var/jenkins_home jenkins/jenkins:2.401.3-lts

访问Jenkins,ip:映射的端口
在这里插入图片描述
复制密码,可以在提示的路径去查找(可以直接在宿主机映射的目录去看),也可以直接查看Jenkins启动日志,我这里直接查看启动日志

docker logs jenkins

在这里插入图片描述
将密码填入管理员密码框中,点击继续,选择按推荐的插件安装(都无所谓,进去后在安装也行)
在这里插入图片描述
安装完插件后,会让你设置个管理员账户
在这里插入图片描述
保存并完成,开始使用Jenkins
在这里插入图片描述

设置Maven、JDK添加远程服务器

如果你的在安装插件的时候都成功了没有报错,直接重启一下Jenkins会发现直接汉化了

docker restart jenkins

在这里插入图片描述
安装Git Parameter、Publish Over SSH插件
在这里插入图片描述
使用wget下载Maven到服务器

wget https://dlcdn.apache.org/maven/maven-3/3.9.3/binaries/apache-maven-3.9.3-bin.tar.gz

下载JDK上传服务器,jdk8需要登录Oracle账号才给下载
https://download.oracle.com/otn/java/jdk/8u381-b09/8c876547113c4e4aab3c868e9e0ec572/jdk-8u381-linux-x64.tar.gz
服务器上解压,务必使用sudo不然会提示权限不足

sudo tar -zxvf apache-maven-3.9.3-bin.tar.gz
sudo tar -zxvf jdk-8u381-linux-x64.tar.gz

在这里插入图片描述
将解压后的maven、jdk移动到/var/jenkins_home里面(挂载到宿主机的/data/jenkins目录的,所以直接移动/data/jenkins目录即可)

mv apache-maven-3.9.3 /data/jenkins/
mv jdk1.8.0_381 /data/jenkins/

回到Jenkins设置页面,全局工具配置,设置maven和jdk
在这里插入图片描述
别名随意可识别即可,路径得按容器内部的路径来设置

/var/jenkins_home/jdk1.8.0_381
/var/jenkins_home/apache-maven-3.9.3

在这里插入图片描述
在这里插入图片描述
进到系统配置,添加服务器ssh连接
在这里插入图片描述
在最下边添加
在这里插入图片描述

安装Gitlab比较吃性能,不安装了直接用公司现成的仓库

新建一个空白项目
在这里插入图片描述
为了方便,直接设置公开项目了
在这里插入图片描述
在克隆里面将仓库地址拿出来,idea、jenkins都需要用到:http://git.hkeasyspeed.com/root/shuai.git

测试项目设置

修改pom.xml文件指定jar包叫shuai

<finalName>shuai</finalName>

在这里插入图片描述
项目下新建了个docker目录存放了Dockerfile、docker-compose.yml文件
Dockerfile,自定义构建镜像,将shuai.jar复制过来并启动

FROM daocloud.io/library/java:8u40-jdk
COPY shuai.jar /usr/local/
WORKDIR /usr/local
CMD java -jar shuai.jar

docker-compose.yml,启动和映射

version: "3.1"
services:
  mytest:
    build:
      context: ./
      dockerfile: Dockerfile
    image: shuai:v1.0.0
    container_name: shuai
    ports:
      - 9999:8080

idea提交代码,默认提交为main分支,可以新建分支提交,为了方便(懒)我就直接提交了

就展示一句“我是真滴帅!!!!”

package com.monster.mytest.controller;

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

@RestController
public class TestController {
    @GetMapping("/test")
    public String test(){
        return "我是真滴帅!!!";
    }
}

推送到gitlab
在这里插入图片描述

Jenkins持续化部署设置

创建项目
在这里插入图片描述
构建一个自由风格项目
在这里插入图片描述
启用参数构建过程,默认值是master
在这里插入图片描述
设置Git,将前面的gitlab地址填进来,分支在jenkins里面默认master分支,我这里只有只有一个main分支修改对应分支。

设置的公开项目,不需要账号密码即可拉取
在这里插入图片描述
设置打包build,添加执行shell、调用顶层maven目标
在这里插入图片描述
最下面的构建操作,将启动的老容器关闭再启动新的容器
在这里插入图片描述

发版验证

jenkins项目点击Build with Parameters,右侧会显示我们在gitlab打的标签
在这里插入图片描述
选择相应标签构建即可
在这里插入图片描述
选择不同的标签,发布的就是提交不同的内容
在这里插入图片描述

在这里插入图片描述

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

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

相关文章

【es6】Promise实现

友情链接 关于promise的介绍&#xff0c;请看此篇水文 本篇文章只是介绍实现promise以及promise常用方法。 正文 Promise使用 let promise new Promise((resolve,reject)>{resolve(success); //这里如果是reject(fail) }); promise.then((res)>{console.log(res); …

企业AD域管理:ADManager Plus助您轻松掌控全局

在现代企业中&#xff0c;Active Directory&#xff08;AD&#xff09;域是一个至关重要的组成部分。它作为一种身份验证和授权机制&#xff0c;管理着企业网络中的用户、计算机、组和其他资源。然而&#xff0c;随着企业规模和复杂性的不断增长&#xff0c;AD域的管理变得越来…

深入挖掘地核和地幔之间的相互作用

一本新书介绍了我们在理解地核-地幔相互作用和共同进化方面的重大进展&#xff0c;并展示了提高我们对地球深层过程的洞察力的技术发展。 与地核-地幔共同演化相关的地球深层结构和动力学的图示。图片来源&#xff1a;白石千寻 Editors Vox是 AGU 出版部的博客。 地球深层内部很…

螺杆支撑座使用深沟球轴承和角接触球轴承的区别?

螺杆支撑座是连接丝杆和电机的轴承固定座&#xff0c;与滚珠螺杆搭配使用&#xff0c;能够获得高刚性、高精度的稳定的回转性能&#xff0c;因此被广泛应用在各行各业中。 使用螺杆支撑座之所以能够获得稳定的回转性能&#xff0c;主要是因为最佳轴承的使用&#xff0c;通俗点说…

IDEA中怎么将代码提交代码到远程仓库

假设代码已经写好,现在准备提交到远程仓库 git会自动帮我们在远程托管平台中创建一个仓库这里我选用的是gitee 如果还没有注册gitee 请先去注册,第一次使用需要登录gitee账号 登录我们自己的gitee账号,会发现git自动创建了一个仓库 如果我们又修改了 代码,想重新提交到远程仓库…

DreamBooth为何有能力让第一个应用创建者年赚2500万美金?

DreamBooth 是一种个性化的文本到图像生成模型&#xff0c;它可以通过向扩散模型&#xff08;比如Stable Diffusion&#xff09;中注入少量主体对象&#xff0c;从而达到对基础模型的微调。使用微调后的模型可以生成在不同的场景、姿势和视角中的该主体上下文图像。 Dreamboot…

单通道 6GSPS 16位采样DAC子卡模块--【资料下载】

FMC147是一款单通道6.4GSPS&#xff08;或者配置成2通道3.2GSPS&#xff09;采样率的12位AD采集、单通道6GSPS&#xff08;或配置成2通道3GSPS&#xff09;采样率16位DA输出子卡模块&#xff0c;该板卡为FMC标准&#xff0c;符合VITA57.4规范&#xff0c;该模块可以作为一个理想…

如何通过sqlplus连接oracle数据库

本文介绍如果通过sqlplus连接oracle数据库。如果用SQL Developer连接数据库服务器端&#xff0c;需要本地安装oracle客户端&#xff0c;而oracle客户端安装包比较大&#xff0c;安装配置也比较繁琐。这里推荐安装使用oracle的Instant Client。Instant Client是Oracle发布的轻量…

iMX6ULL驱动开发 | 让imx6ull开发板支持usb接口FC游戏手柄

手边有一闲置的linux开发板iMX6ULL一直在吃灰&#xff0c;不用来搞点事情&#xff0c;总觉得对不住它。业余打发时间就玩起来吧&#xff0c;总比刷某音强。从某多多上8块儿大洋买来一个usb接口的游戏手柄&#xff0c;让开发板支持以下它&#xff0c;后续就可以接着在上面玩童年…

JAVA 反编译工具

Releases deathmarine/Luyten GitHub 安装exe 打开拖入文件即可

【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)

深入探索和分析MySQL数据库的数据备份和恢复实战开发指南&#xff08;8.0版本升级篇&#xff09; 项目目标官方升级地址 向前兼容性问题任务拆分调整项目前提工作应用服务改造驱动器改造&#xff08;p0&#xff09;改造范围解决问题 客户端连接配置&#xff08;p0&#xff09;改…

卖菜大妈都能听懂:告诉你什么是信息化,数字化,智能化

最近两年&#xff0c;数字化成为了新的流行趋势&#xff0c;网上充斥着大量关于数字化的文章。然而&#xff0c;仔细阅读这些文章会发现&#xff0c;其中大多数只是将信息化一词替换成了数字化&#xff0c;而内容并没有实质性的改变。而且&#xff0c;一些文章还在混淆术语&…

NSS刷web3

[HDCTF 2023]SearchMaster [天翼杯 2021]esay_eval 这题会匹配A或B类 如 "A":1: 绕不过去 可以考虑快速析构 <?php class A{public $code "";function __call($method,$args){eval($this->code);}function __wakeup(){$this->code "&q…

Emacs之将.el编译成bin(一百二十五)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

Wireshark抓包分析TCP协议:三次握手和四次挥手

01、前言 面试中我们经常会被问到TCP协议的三次握手和四次挥手的过程&#xff0c;为什么总喜欢问这个问题呢&#xff1f; 其实我们平时使用的很多协议都是应用层协议&#xff0c;比如HTTP协议&#xff0c;https协议&#xff0c;DNS协议&#xff0c;FTP协议等&#xff1b;而应…

工作流与状态机

引言与动机&#xff1a;世界是那么的广阔无垠&#xff0c;姿态万千&#xff0c;我们梦想着计算设备的多元化&#xff0c;而如今我们已经梦想成真&#xff0c;但同时业务模型同样变得纷繁复杂。如果不考虑我们拥有的繁杂的业务模型&#xff0c;就很难谈得上去探索行业发展的方向…

NSX多租户之旅

从多租户数据面到完整的多租户框架 我们很高兴地宣布NSX中的Projects这一项新功能&#xff0c;可以对NSX部署的多个租户进行细粒度的资源管理。 Projects提供灵活的资源分配和管理&#xff0c;将NSX的多租户支持提升到新的水平。企业管理员可以将平台划分为不同Projects&…

Java类集框架(一)

目录 1.Collection集合接口 2.List 接口 (常用子类 ArrayList ,LinkedList,Vector) 3.Set 集合 接口(常用子类 HashSet LinkedHashSet,TreeSet) 4.集合输出(iterator , Enumeration) 1.Collection集合接口 Collection是集合中最大父接口&#xff0c;在接口中定义了核心的…

SolidWorks二次开发系列入门100篇之97-极点坐标

什么是极点 一个模型中的极点是指在某个方向上的最高或最低点。在三维模型中&#xff0c;通常有三个方向&#xff1a;x轴、y轴和z轴。因此&#xff0c;在x轴&#xff0c;y轴和z轴的正方向和负方向上&#xff0c;每个模型可能都有两个极点。极点通常是一些锐角或骨刺&#xff0…

攻防世界zorropub题解与subprocess模块

目录 题目分析&#xff1a; subprocess模块&#xff1a; subprocess.Popen()函数&#xff1a; subprocess.run()函数&#xff1a; 题目脚本&#xff1a; 在攻防世界做到一个题目感觉还挺有意思&#xff0c;记录一下 这个放链接也只是攻防世界的页面&#xff0c;所以直接说…