02-Jenkins配置编译项目

简介: 本文介绍Jenkins配置编译项目流程:从GitLab拉取代码,使用Maven/Node编译,Docker打包镜像并推送到CCE仓库,通过kubectl更新云上服务。涵盖后台app-web、system-server模块及前端Vue项目的自动化构建与部署配置要点。

02-Jenkins配置编译项目

Jenkins配置编译任务项目的大致流程:从gitlab上拉取程序运行 maven/Node 编译打包运行Dockerfile打包成镜像上传镜像到cce云上镜像仓库使用kubectl更新cce云上的负载镜像需要打包编译的内容:后台项目的app-web模块后台项目的system-server模块前端VUE项目后台编译以admin登录Jenkins,选择新建任务。任务名称:任意起,例如dev_myproject_java选择构建一个自由风格的软件项目(也可以选择复制,填写需要复制的任务的任务名称)General组:限制项目的运行节点:填写节点服务器的标签表达式,限制只在该服务器上运行任务。myproject_dev点击高级使用自定义的工作空间:填写源程序下载到的服务器路径。/root/build/source/myproject/myproject-vue显示名称:可以配置一个中文名,用于在列表页面展示。dev-后台-app源码管理组:选择GitRepository URL:代码路径。填写git@xxxxxx那个。http:xxxxx的没有设置会报错。从gitlab复制下来的路径需要进行调整,前面加上ssh://前缀,ip后面加上gitlab的22端口映射出来的端口号8022。例如:从gitlab复制出来的路径为git@192.168.xxx.xxx:myproject/myproject-vue.git,调整后为ssh://git@192.168.xxx.xxx:8022/myproject/myproject-vue.gitCredentials:选择前面创建的Jenkins用户私钥的那个凭据Branches to build:指定要拉取的分支。例如本项目的*/dev_20240712源码库浏览器:用于在jenkins上直接看本地构建时的代码差异。源码库浏览器:gitlabURL:gitlab的本项目页面:http://192.168.xxx.xxx:8090/myproject/myproject-vue/version:gitlab版本:17.0构建触发器组:可以配置每次有代码push到gitlab时自动构建。为避免频繁构建,项目采用手动点击构建,不配置触发器。构建环境组:用于给节点服务器准备构建环境,使用Ant构建时可以配置。项目使用Maven、Node构建,且已经在节点服务器上手工部署了Maven、Node,无需进行配置。Build Steps组:配置从gitlab拉取代码之后操作,即具体的构建执行步骤。项目全部使用shell方式执行。登录CCE云:

执行Maven编译打包执行Dockerfile制作镜像、推送CCE镜像仓库、更新cce上的负载镜像


curDate=`date +%Y%m%d`

curTime=`date +%H%M%S`

export VERSION_ALL_TAG=${curDate}-${curTime}


# build app-web image; push to cce; delete local image

cd /root/build/source/myproject/myproject-vue/app-web

docker build -t cce.test.com/myproject/app-web:${VERSION_ALL_TAG} .

docker push cce.test.com/myproject/app-web:${VERSION_ALL_TAG}

docker rmi cce.test.com/myproject/app-web:${VERSION_ALL_TAG}


# build system-server image; push to cce; delete local image

cd /root/build/source/myproject/myproject-vue/system/system-server

docker build -t cce.test.jinanbank.com/myproject/system-server:${VERSION_ALL_TAG} .

docker push cce.test.jinanbank.com/myproject/system-server:${VERSION_ALL_TAG}

docker rmi cce.test.jinanbank.com/myproject/system-server:${VERSION_ALL_TAG}


# update cce deployment

export KUBECONFIG=/root/.kube/config

kubectl set image deployment/myproject container-app=cce.test.com/myproject/app-web:${VERSION_ALL_TAG} container-system=cce.test.com/myproject/system-server:${VERSION_ALL_TAG} -n myproject


登出CCE


/root/cce logout

前端VUE编译与app-web模块的操作步骤类似,只是将Maven编译换成Node编译:


cd /root/build/source/myproject/vue-web


export NODE_HOME=/root/build/node-v12.22.12

export PATH=$NODE_HOME/bin:$PATH


npm run build:clouddev


Jenkins打包docker镜像86服务器上安装的Docker版本比较高,save出来的docker镜像tar文件无法直接在页面导入进CCE中。164服务器上的Docker版本低,导出的镜像可以在页面导入CCE中,但是无法使用CCE客户端。所以项目源码拉取、编译打包、生成镜像、kubectl更新等操作在86服务器上进行。如果需要导出docker镜像,则在164服务器上进行。

相关文章
|
6月前
|
存储 SQL 负载均衡
17 | 异步 RPC:压榨单机吞吐量
本文深入探讨如何通过异步机制提升RPC框架的单机吞吐量。重点分析影响吞吐量的核心原因——业务逻辑耗时导致CPU利用率低,并提出“异步”为关键解决方案。详细讲解调用端使用Future、服务端支持CompletableFuture实现全链路异步的原理与优势,显著提升系统性能与资源利用率。
17 | 异步 RPC:压榨单机吞吐量
|
6月前
|
测试技术 API
23丨如何在没有接口的情况下进行 RPC 调用?
本文介绍RPC泛化调用的应用场景及实现原理,重点解决无接口API时如何发起调用的问题,适用于统一测试平台与服务网关等场景,通过GenericService与专属序列化插件实现灵活调用。
23丨如何在没有接口的情况下进行 RPC 调用?
|
6月前
|
存储 缓存 负载均衡
CP(强制一致性),AP(最终一致)
本文探讨RPC框架中的服务发现机制,对比DNS、ZooKeeper等方案,指出其在超大规模集群下的局限性。重点提出基于消息总线的最终一致性注册中心,通过AP模型替代CP,提升系统性能与稳定性,适用于高并发、大规模服务节点场景。
CP(强制一致性),AP(最终一致)
|
6月前
|
存储 SQL 安全
18 | 安全体系:如何建立可靠的安全体系?
本讲深入探讨RPC中的安全问题,重点解决调用方未授权调用和服务伪造风险。通过引入基于HMAC的去中心化身份认证机制,实现调用方安全接入;结合注册中心对接口与应用绑定,防止非法服务注册。构建轻量可控的安全体系,保障内网RPC调用的可靠性与可管理性。
|
6月前
|
SQL 算法 关系型数据库
15 | 熔断限流:业务如何实现自我保护?
本文讲解RPC框架中业务的自我保护机制。服务端通过限流(如令牌桶、滑动窗口)防止过载,可基于应用或IP维度控制,并借助配置中心动态调整阈值;还可依赖集中式限流服务实现集群级精确控制。调用端则通过熔断机制避免因下游异常导致雪崩,熔断器在动态代理层拦截请求,实现快速失败。二者结合提升系统稳定性。
|
6月前
|
数据采集 安全 IDE
19 | 分布式环境下如何快速定位问题?
本文探讨了RPC在分布式环境下快速定位问题的难点与解决方案。由于服务间依赖复杂、跨团队协作成本高,传统日志排查效率低下。为此,提出两种方法:一是通过合理封装异常信息,包含明确的错误码、IP、接口名等关键数据;二是引入分布式链路跟踪,利用Trace和Span实现调用链路的完整还原,结合埋点与信息传递,精准定位故障节点,提升排查效率。
19 | 分布式环境下如何快速定位问题?
|
6月前
|
安全 测试技术
16 | 业务分组:如何隔离流量?
本文介绍RPC中的流量隔离机制——分组。通过分组可将服务实例划分为多个小集群,实现调用方流量隔离,避免突发流量相互影响。结合主备分组策略,还能提升系统高可用性,保障核心业务稳定运行。
16 | 业务分组:如何隔离流量?
|
6月前
|
网络协议 算法 前端开发
07 | 架构设计:设计一个灵活的 RPC 框架
本文深入讲解如何设计一个灵活的 RPC 框架,从基础通信原理出发,剖析传输、协议、服务发现、连接管理等核心模块,并提出分层架构与插件化设计思想,提升系统可扩展性与维护性,助力构建高性能、易演进的分布式服务架构。
|
6月前
|
缓存 Ubuntu Linux
Docker安装
本文介绍Docker在CentOS和Ubuntu系统中的安装与配置方法,涵盖卸载旧版本、配置yum源、在线/离线安装、启动服务、设置开机自启、运行HelloWorld测试及daemon.json配置详解,并提供阿里云镜像加速、日志管理、命令补全等实用操作步骤。
|
6月前
|
Java Shell Maven
06-nexus私仓环境搭建
本文介绍Nexus私有仓库环境搭建全过程,包括JDK安装、Nexus OSS版下载与解压、配置文件修改、创建nexus用户并启动服务。详细说明了如何通过Web界面登录、修改默认密码、配置匿名访问,并创建Maven私仓。同时提供上传本地jar包的两种方式,重点演示使用脚本批量导入本地仓库依赖的方法,包含清理无效文件、重命名元数据及执行上传命令等步骤,适用于企业内网构建Maven私服场景。

热门文章

最新文章