jenkins+固定agent节点+maven+sonarqube+docker

Jenkins构建Maven项目:三种风格详解与实战避坑指南 持续集成与持续交付(CI/CD)是现代软件工程的核心实践,旨在通过自动化流程提升软件交付效率与质量。其核心原理在于将代码集成、构建、测试和部署等环节自动化,实现快速、可靠的软件发布。在Java生态中,Maven作为标准的项目构建与依赖管理工具,定义了清晰的项目结构和生命周期。Jenkins作为广泛使用的开源CI/CD工具,通过与Maven等工具的集成,能够自动化执行构建、测试等任务,其技术价值在于将重复性劳动自动化,保障构建的一致性与可追溯性。本文聚焦于Jenkins构建Maven项目的核心实践,深入剖析自 阅读详情

说来惭愧:jenkins+动态slave没整出来,因为 本打算使用kaniko做容器化构建的,所有的配置都是按照k8s集群中部署来配置的,但是搞了很长时间,就是不行.不是驴不走就是磨不转.治好退而求其次.如果哪位大神整出来了,使用kaniko动态slave的部署方式,还望不吝指点一二.

感谢感谢.

先决条件

服务名称版本号部署位置
jenkins-version2.486k8s
k8s-version1.24.14k8s
maven-version3.9.9jenkins-agent
sonar-version4.8.0.2856jenkins-agent
java-versionjdk-17jenkins,jenkins-agent
jenkins插件sonarqube scanner for jenkinsjenkins
git pluginsjenkins

说明一下,我这里安装的maven,sonar-scanner都是使用二进制安装的.参考个人的构建环境自己到github上下载对应版本的二进制包即可.

jenkins页面配置的信息

dashboard -->系统管理--> system -->jenkins Location

jenkins Url:    http://test-jenkins.com:30112/  这里因为我使用的是kubesphere作为k8s管理,所以jenkins部署好之后创建了个ingress.具体咋创建自己研究下.

同级设置sonarqube全局环境变量:

说明下:设置这些配置信息主要是为了生成环境变量.可以供全局使用.

serverurl 这里配置ide是sonar页面的url,jenkins-agent可以访问的地址.

token,是在凭据管理中创建的,从sonarqube页面中创建的用于jenkins与sonarqube连接认证用.

配置共享库

这里就不做过多解释了.之前文档有相关介绍,

凭据配置

说明下:这里有三个配置是本次使用的.

gitlab-admin:gitlab的用户名密码,

token1:sonarqube的认证信息token.

节点配置

dashboard--> 系统管理-->节点列表

这里说明下:

        参数说明:

        Number of executors,最大构件数量

        远程工作目录:其实就是agent服务器拉取代码的目录.我这里设置的根jenkins本身一致.

        标签:用于选择构建节点用.

        配置agent节点的时候我这里用的是javaweb启动代理,个人可以根据自己情况,使用        overssh也可以.目的是能通就行.

流水线项目配置

创建流水线:

配置信息

为了少走弯路,这里提前说明下:

下面截图中的配置在Jenkinsfile中都有体现,在Jenkinsfile中写完只有会在这里显示,所以不用手动配置这些参数,唯一要配置的是最后的git拉取代码的位置

下面两张图的配置比较重要

Jenkinsfile以及共享库调用

目录结构如下:如图.这里分成了三个目录层级.

其中resources目录是存放一些配置信息的.这里其实没用到.可以忽略.在使用动态slave的时候会用得上.

然后就是src/org/deploy目录.用来存放groovy的代码包.后面会有具体代码.

Jenkinsfile文件代码:
@Library('mylib') _
//函数调用
def Mybuild = new org.devops.Build()

env.serviceName = "${env.JOB_NAME}".split('_')[0]

def jdks =     ['jdk17':'/usr/local/jdk-17.0.11+9/']

    if ("${env.serviceName}" == 'pig-ui') {
    env.projectType = 'web'
    env.repoName = 'pig-ui'
    env.srcUrl = 'http://192.168.59.30:28080/devops8/pig-ui.git'
}else {
    env.projectType = 'backend'
    env.repoName = 'pig'
    env.srcUrl = 'http://192.168.59.30:28080/devops8/pig.git'}

currentBuild.displayName = "${env.serviceName}"
currentBuild.description = "serviceName: ${env.serviceName}"
SONAR_TOKEN = credentials('token1')
pipeline {
    agent { label 'node1' }
    parameters {
        choice(name: 'srcUrl', choices :["${env.srcUrl}"], description:'代码仓库地址-srcUrl')
        choice(name: 'javaVersion', choices: ['jdk17'], description: 'jdk版本-根据java版本来选择')
        choice(name: 'branchName', choices: ['jdk17'], description: '分支名称')
        string(name: 'VERSION', defaultValue:'RELEASE-1.1.1', description:'构建版本')
    }
    //这里用于初始化环境变量
    stages {
        stage('init') {
            steps {
                script {
                    sh """
                        export JAVA_HOMES=${jdks["${params.javaVersion}"]}
                        echo \$JAVA_HOMES

                    """

                }
            }
        }
        //这里拉取代码
        stage('run') {
            steps {
                script {
                    Mybuild.GetCode()
                    print 'build--------------'
                }
            }
        }
        //这里构建jar包
        stage('Build') {
            steps {
                script {
                    Mybuild.Build()
                    print 'build--------------'
                }
            }
        }
        stage('sonar-quality') {
            steps {
                script {
                    Mybuild.Sonar_quality()
                    print 'Sonar_quality--------------'
                }
            }
        }
        stage('BUildAndPushImage') {
            steps {
                script {
                    Mybuild.BUild_dockerImage()
                }
            }
        }
    }
}
Build文件代码:
package org.devops

def GetCode(){
        //script
    //拉取仓库代码
    checkout scmGit(branches: [[name: "${env.branchName}"]], 
    extensions: [], 
    userRemoteConfigs: [[credentialsId: 'gitlab-admin',   //添加凭据
    url: "${env.srcUrl}"]])
    sh 'ls -l '
    echo "${env.VERSION}"+'版本号码'
    echo "${env.serviceName}"+'服务名称'

}

def Build(){

    sh  "mvn  clean package -pl ${env.serviceName} -am"
    sh "ls ./pig-register/target"
}

def Sonar_quality(){
                        withSonarQubeEnv(credentialsId: 'token1') {
                    sh """
                    echo $PATH && which sonar-scanner || true
                    sonar-scanner -Dsonar.host.url=http://sonar-ingress.com:32433 \
                    -Dsonar.projectKey=${env.serviceName} \
                    -Dsonar.projectName=${env.serviceName} \
                    -Dsonar.projectVersion=${env.branchName} \
                    -Dsonar.projectDescription="my first project!" \
                    -Dsonar.links.homepage=http://192.168.59.30:28080/devops8/pig/-/tree/jdk17 \
                    -Dsonar.links.ci=\${JOB_URL} \
                    -Dsonar.sources=${env.serviceName}/src \
                    -Dsonar.sourceEncoding=UTF-8 \
                    -Dsonar.java.binaries=${env.serviceName}/target/classes \
                    -Dsonar.java.test.binaries=${env.serviceName}/target/test-classes \
                    -Dsonar.java.surefire.report=${env.serviceName}/target/surefire-reports
                    """
                    }
}





def BUild_dockerImage(){
    //Build Docker images
    env.dockerImageName = "registry.cn-beijing.aliyuncs.com/scorpio/${env.serviceName}:${env.BUILD_ID}"
    env.dockerImageNameLts = "registry.cn-beijing.aliyuncs.com/scorpio/${env.serviceName}:latest"
    sh """
        docker build -t ${env.dockerImageName} ${env.serviceName}
        docker build -t ${env.dockerImageNameLts} ${env.serviceName}
        docker push ${env.dockerImageName}
        docker push ${env.dockerImageNameLts}
    """
}

这里说一下在构建过程中遇到的问题:

1.jenkins无法找到sonar-scanner服务问题.

在将sonar-scanner的二进制文件解压到linux服务器的/usr/local/目录下之后,默认的socar-scanner文件存放在./sonar-scanner-4.8.0.2856-linux/目录中,我在jenkins-agent环境中添加了环境变量,并且验证环境变量生效后,发现jenkins流水线在构建过程中一直报错 sonar-scanner not found 相关的错误.这个问题让我尝试了很多解决方式.最终在jenkins的构建日志集中发现,jenkins 默认找的路径是/usr/local/bin 目录下的sonar-scanner.这个目录下没有这个命令.所以才报这个错误的.然后我就直接将可执行文件移入/usr/local/bin中/.....然后迎来了第二个报错.

2.重新构建后发现报错变量,变成


#jar_file=/usr/local//lib/sonar-scanner-cli-4.8.0.2856.jar  not exits 这个文件找不到.

后来才发现,在可执行程序中(就是/usr/local/bin下的sonar-scanner文件)中有一个配置,使用变量的形式指向了上面的目标地址.所以导致这个文件找不到.

解决方式:

vim /usr/local/bin/sonar-scanner 修改如下配置即可.(这里jar文件在解压后文件的lib目录下)

[root@jenkins-node1 /usr/local/sonar-scanner-4.8.0.2856-linux/lib]$ls
sonar-scanner-cli-4.8.0.2856.jar
jar_file=/usr/local/sonar-scanner-4.8.0.2856-linux/lib/sonar-scanner-cli-4.8.0.2856.jar
#jar_file=$sonar_scanner_home/lib/sonar-scanner-cli-4.8.0.2856.jar
3.docker打包推送失败

最后再次执行流水线发现docker无法将构建的包推送到远程的镜像仓库

因为agent服务器上没有登陆容器镜像仓库.这里有两种方式

        1.直接docker login xxxxx 

        输入密码:xxxxx

        登陆成功.即可.

        2.从其他机器上将docker的登陆认证文件拷贝到本机的/root/.docker/目录下.

文件位置/root/.docker/config.json(前提是其他机器已经登陆过了.)

再次尝试,问题解决.

验证结果:

在阿里云容器镜像仓库中找一下刚刚打包的镜像是不是推送成功了.

其他流水线,的配置,需要修改Jenkinsfile文件,下期在做.

DevOps实战笔记--2(SonarQube基础操作与集成Jenkins+Jenkins集成Harbor) 在 Devops实战笔记---1 中,我们配置了两台实验机器:node1,node2,两台机器都使用docker容器技术来运行基本服务,GitLab作为体量较大的服务之一,运行内存可达4G之多,故使用node1作为GitLab专用服务器来负责代码的版本控制。node2作为CI/CD过程服务器兼SSH测试服务器,配置了JDK+Maven等服务作为项目持续集成与持续部署的基础。在此之上搭建了Jenkins,SonarQube并进行了CI/CD的实验。本文将从此处开始进行讲解。 阅读详情

相关推荐

Jenkins配置即代码:Docker+JCasC构建可审计CI/CD流水线

Jenkins作为主流CI/CD工具,其配置管理长期面临环境不一致、变更不可追溯、交接成本高等痛点。配置即代码(GitOps)理念将Jenkins的运行时环境与声明式配置解耦:Docker容器固化JDK、Maven、Node.js等运行依赖,实现环境确定性;Jenkins Configuration as Code(JCasC)通过YAML文件统一管理安全策略、插件、凭据和工具链,赋予配置版本化、可测试、可审计能力。二者协同构成基础设施即代码闭环,显著降低SRE运维信任成本,支撑多团队协作、灰度迁移与生产级

weixin_30357231的博客 534

【转载】jenkins 容器环境中调用docker

转载来自https://juejin.cn/post/7219899306946199610当前在jenkins 容器中调用docker的方式有三种所以我们可以将这两个关键点在启动时就传给jenkins容器这样的话我们就能正常的调用host的docker进行命令的执行如下图注意点:因为调用的是host的docker,它就有可以杀掉自己的风险需要注意到此我们就做好了jenkins调用docker的基础准备。

UncleDong的博客 839

Jenkins插件安装与JDK、Maven、Git全局配置实战

在持续集成(CI)与持续交付(CD)的工程实践中,Jenkins 是最常用的自动化构建调度中心之一。要让 Jenkins 真正发挥作用,必须首先完成插件安装与全局工具链配置。本文从基础概念出发,介绍插件中心镜像源切换、离线安装与批量安装方法,进而详解 JDK、Maven、Git 三类核心工具的全局配置原理,并说明如何通过凭证管理实现 Git 免密拉取。随后,以 Pipeline 脚本为示例,验证从代码拉取、编译打包到产物归档的完整链路。同时,本文还覆盖 Jenkins REST API 的调用方式、批量任务

weixin_33800463的博客 472

jenkins结合docker实现自动部署

jenkins整合docker,使用jib插件实现java应用从git拉取项目,docker镜像构建,上传,拉取,容器启动等自动化部署

蛋蛋的碎碎念 4898

Jenkins自动化构建与CI/CD流水线实战指南:从入门到精通

自动化构建是现代软件工程的核心实践,它通过将编译、测试、打包等重复性任务自动化,显著提升开发效率和软件质量。其原理是基于事件触发(如代码提交)自动执行预定义的工作流,从而实现持续集成(CI)与持续交付(CD)。这项技术的核心价值在于减少人为错误、加速反馈循环并保障交付流程的一致性。在微服务、云原生等复杂应用场景中,一个稳定可靠的自动化构建平台更是不可或缺的基础设施。Jenkins作为业界经典的自动化服务器,凭借其强大的插件生态和灵活的流水线即代码(Pipeline as Code)能力,成为实现这一目标的优

weixin_30536513的博客 603

Jenkins自动化部署实战:从零搭建CI/CD流水线

持续集成(CI)是一种软件开发实践,通过自动化构建和测试流程,确保代码变更能够快速、可靠地集成到主干。其核心原理在于将代码提交、构建、测试、部署等环节串联成自动化流水线,从而减少人为错误、加快反馈周期。这一技术在现代软件工程中具有重要价值,能够显著提升团队的交付效率和质量稳定性,广泛应用于微服务架构、云原生应用等场景。本文聚焦于Jenkins这一主流自动化服务器,深入探讨其环境搭建、Pipeline脚本编写以及分布式构建等关键实践,并结合Docker容器化部署和GitLab集成等热词,为读者提供从入门到精通

ciya3282的博客 424

Jenkins Pipeline 使用 Docker 作为 Agent 时注意事项

Jenkins Pipeline 使用 Docker 作为 Agent 时注意事项。

RAB 1551

持续集成案例之使用Docker运行自构建Jenkins的Agent镜像固定工作节点实践(分享企业项目流水线代码)...

遂利用装有Docker的机器,立即使用自行构建的jenkins-jnlp-agent镜像,并在 jenkins 中创建一个固定节点,通过docker运行该镜像并连接到Jenkins,在流水线项目绑定到该节点执行,通过几分钟的时间就快速解决了jenkins agent问题,在项目完成持续集成和交互后,趁着间隙更新Jenkins上配置连接kubernetes apiserver的证书,恢复了动态生成agent节点。

全栈工程师修炼指南-IT知识分享 953

Jenkins部署Docker与Jenkins流水线

Jenkins持续集成到Docker容器中,包括Jenkins的流水线 pipeline全实践

qq_27331467的博客 3053

抽象代数学习笔记(抽象代数的历史、运算)

1. 抽象代数历史 对于五次及以上的代数方程是否存在根式解这个问题,欧拉、拉格朗日、高斯等数学家都没得到答案,但是他们得出五次及以上的代数方程组不存在根式解的结论。19世纪初,阿贝尔提出五次及以上的代数方程不存在根式解,并找出一类特殊的五次及以上的代数方程可以用根式解表示出来。另外一个年轻的数学家伽罗华...

huangzhpei的博客 3667

【科普知识】什么是驱控一体化伺服电机?

驱控一体化伺服电机以其高度的集成性、兼容性、便捷性以及卓越的性能表现,成为了现代工业自动化领域的一颗璀璨明珠。对于那些追求高效、精准、智能控制的行业用户而言,它无疑是一种理想的选择。

m0_46512607的博客 3151

案例剖析:Claude Code 是如何工作的?AI 编码 Agent 背后的 AI System Design 深度拆解

Claude Code 是 Anthropic 推出的终端 AI 编码 Agent,你用一句自然语言给它布置任务,它就会自己读代码、改文件、跑命令,并反复验证结果。本文结合开源项目 ai-system-design 的完整 AI System Design 指南,拆解这个 AI 编码 Agent 背后的 Agent 循环、工具调用、上下文压缩、记忆与护栏设计,帮助新手建立 AI 系统设计的直观认识

gitblog_00581的博客 870

Oracle EBS订单的流程(Order->AR)

基本流程创建订单路径:Order Management > Orders,Returns > Sales Orders填写订单头信息,客户,订单类型,销售人员填写订单体信息,输入物料,数量...然后Book Order,订单Book之后,你会发现订单头的Status的状态变成了“Booked”,订单行的状态为"Awaiting Shipping",记录下来你的订单号,后边的每一步都需要这个订单号。

田攀的日志 4万+

零基础上手:3句AI对话操控Blender建模

记不住旋转视口的快捷键,也找不到材质参数面板在哪?MCP for Blender 是一个把 AI 对话和 Blender 3D 建模连起来的社区插件。装好后,你对 AI 助手用自然语言说要做什么,结果直接出现在视口里。这篇文章带你从环境准备、建立连接,到跑通一个真实场景。 ## 动手前,先自查能不能用 - 适合你:本机装了 Blender 3.0 以上(推荐 4.x),并且有 Claude D

gitblog_00408的博客 237

点云去噪:基于点云拟合的方法

点云处理是计算机视觉中的重要任务之一,而点云去噪是点云处理的关键步骤之一。在实际应用中,由于采集设备的噪声、运动估计误差或者环境干扰等因素,点云数据中常常包含有噪声点,这些噪声点会对后续的点云分析和处理造成不良影响。一种简单的方法是计算点到拟合曲面的距离,并将距离超过某个阈值的点定义为噪声点,进行过滤。一种简单的方法是计算点到拟合曲面的距离,并将距离超过某个阈值的点定义为噪声点,进行过滤。该方法通过拟合点云数据的曲面模型,对噪声点进行识别和过滤,从而得到更加干净的点云数据。

AuSwift的博客 638

【项目实战】功能安全目标有四个ASIL等级:A、B、C、D,ASIL D是最高的等级

功能安全是一种关注产品在异常情况下如何避免造成伤害的概念功能安全在汽车电子行业中非常重要。功能安全涉及到系统、电子和软件三个部分。(1)系统部分主要涉及概念设计(2)而具体的实施则是在电子和软件部分完成。

奶爸的编程之路,也就一周冷个三天 2823

Jenkins 高频面试题实战解析:CI/CD 流程、流水线触发、备份与密钥管理(基于 Jenkins-Zero-To-Hero 项目)

> 导读:本文以 Jenkins 面试中最常被问到的 12 个问题为主线,逐一给出可落地的参考答案,并结合本仓库(Jenkins-Zero-To-Hero)中真实可运行的 Jenkinsfile、Kubernetes 清单与共享库代码进行印证。读完你不仅能对答如流,还能理解 Maven + SonarQube + AppScan + Argo CD + Kubernetes 的端到端 CI/CD

gitblog_00231的博客 642

SpringBoot从入门到精通(全)

前言 ==本博文结合软件idea进行主要讲解== **springboot的特性主要有** - 简化 Spring 应用程序的创建和开发过程 - 抛弃了繁琐的 xml 配置过程,采用大量的默认配置简化以及注解反射 - 直接使用 java main 方法启动内嵌的 Tomcat 服务器运行 Spring Boot 程序,不需要部署 war 包文件 **四大核心**分别为自动配置、起步依赖、Actuator和命令行界面

码农研究僧的博客 7万+

Jenkins持续集成实战:从核心原理到生产级流水线搭建

持续集成(CI)是现代软件开发中提升交付效率与质量保障的核心工程实践,其核心原理在于通过自动化工具频繁地将代码变更集成到共享主干,并执行构建、测试等验证流程。这一技术价值在于减少集成风险、快速发现缺陷,并形成可重复、可靠的软件交付流水线。在众多CI工具中,Jenkins凭借其开源、稳定和强大的插件生态,成为企业落地持续集成的首选平台。它通过Master-Agent架构实现任务调度与执行分离,并支持声明式Pipeline将构建流程代码化,便于版本管理与团队协作。在实际应用场景中,Jenkins能够与Docke

weixin_30681121的博客 449

基于RK3588调试WiFi模块AIC8800

本文介绍了在RK3588平台上移植AIC8800 WiFi模块驱动的过程。开发环境基于Linux 6.1内核和Buildroot文件系统。驱动移植步骤包括:将驱动包放入SDK指定目录、修改Makefile、编译内核、放置固件文件、手动加载驱动模块等。文章还分析了两种常见异常情况:无法识别模块(检查USB信号线路和供电)和偶发断连(检查硬件连接和调整PHY寄存器)。成功加载后可通过ifconfig看到wlan0节点。

qq_45147279的博客 667

Exploring Automated Distractor Generation for Math Multiple-choice Questions via Large Language Mode

多项选择题(MCQ)在几乎所有级别的教育中都无处不在,因为它们易于管理、评分,并且是评估和实践中可靠的格式。MCQ最重要的方面之一是干扰因素,即旨在针对真实学生常见错误或误解的不正确选项。迄今为止,对于教师和学习内容设计师来说,制作高质量的干扰物的任务在很大程度上仍然是一个劳动和时间密集型的过程,其可扩展性有限。在这项工作中,我们研究了数学MCQ领域的自动干扰物生成任务,并探索了从上下文学习到微调的各种基于大型语言模型(LLM)的方法。

c_cpp_csharp的专栏 317

Jenkins+Maven+SVN持续集成环境搭建指南

持续集成(CI)是现代软件开发中的核心实践,通过自动化构建、测试和部署流程显著提升开发效率。其核心原理是在代码提交时自动触发构建流程,快速发现集成错误。Jenkins作为领先的开源自动化服务器,配合Maven构建工具和SVN版本控制系统,可以搭建轻量级CI/CD管道。这种技术组合特别适合Java Web项目,能有效解决环境差异问题,实现从代码提交到测试部署的全流程自动化。通过配置Maven镜像源优化依赖下载,结合SVN钩子脚本实现实时构建触发,团队可以建立高效的持续交付体系。本文详细介绍CentOS环境下J

weixin_30824479的博客 361

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Jenkins+Maven+Git自动化部署实战:从零搭建生产级Java CI/CD流水线

持续集成与持续部署(CI/CD)是现代软件工程的核心实践,旨在通过自动化流程提升开发效率和软件质量。其核心原理在于将代码提交、构建、测试、部署等环节串联为自动化流水线,实现快速、可靠的软件交付。在Java技术栈中,Jenkins作为开源的自动化服务器,结合Maven构建工具和Git版本控制系统,构成了经典的CI/CD解决方案。这套组合能够显著减少人工干预,确保环境一致性,并实现快速反馈与回滚,广泛应用于微服务、Web应用等后端项目的自动化构建与部署场景。本文以Jenkins为核心,详细讲解如何结合Maven

weixin_30263277的博客 429

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

实战Jenkins CI/CD:从架构设计到Pipeline脚本的完整指南

持续集成(CI)是现代软件开发的核心实践,旨在通过自动化构建、测试和部署流程,提升代码质量和团队交付效率。其核心原理在于将代码变更频繁集成到共享主干,并通过自动化流水线快速反馈。Jenkins作为最流行的开源CI/CD工具,其技术价值在于提供了高度可扩展的插件生态和灵活的流水线定义能力,能够支撑从简单编译到复杂多云部署的各种场景。本文聚焦于构建一个生产可用的实战级Jenkins环境,深入探讨Master/Agent架构设计、Pipeline as Code实践以及基于Nexus的制品管理等关键环节,通过具体

weixin_30591551的博客 423

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

一文搞懂 DevOps 与 CI/CD:从 SDLC 敏捷理论到 Windows+GitLab+Jenkins+Docker 完整实战

本文系统讲解 DevOps 核心概念与 CI/CD 持续交付集成实战。从软件开发生命周期 SDLC 入手,对比瀑布模型与敏捷迭代、增量开发,讲解持续集成 CI 的流程、组成要素与收益。实战基于 Windows + GitLab + Jenkins + Docker 技术栈,手把手演示环境搭建、源码托管、Jenkins 容器部署,打通拉取代码、编译 Jar、推送目标服务器、容器化运行完整链路,还包含参数化构建、版本回滚等进阶实践。

2602_95508776的博客 643

什么是CICD? GitLab + Jenkins 持续集成实战部署手册

内容是一篇关于GitLab+Jenkins持续集成实验手册的详细文档,涵盖三节点部署、代码推送、自动构建发布等。摘要需要简洁概括核心内容,不超过150字。</think>本文通过三节点实验环境(GitLab、Jenkins、Web服务器),演示从IDEA推送代码到GitLab,Jenkins自动拉取、Maven打包,并经SSH发布至目标服务器启动应用的完整CI/CD流程。涵盖GitLab Omnibus部署、Jenkins容器化配置、参数化构建及应用容器化演进,提供命令验证与常见问题排查,适合运维/开发人员

Ningcode的博客 385
上一篇: jenkins集成sonarqube(使用token进行远程调用)
下一篇: argo-rollouts部署
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值