IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 梳理jenkins构建流程 -> 正文阅读

[系统运维]梳理jenkins构建流程

一、背景

最近需要进行服务环境治理项目,于是我把公司jenkins相关的部署流程给总结了一下。

二、jenkins操作架构图在这里插入图片描述

三、详细流程

拉代码–>打包–>构建镜像–>升级pod镜像

1. 以go语言jenkins的流程梳理,以dev-bizops-svr为例

1.丢弃旧的构建
2.参数化构建-GIT-TAG
3.git拉取代码--用tag号命名${GIT-TAG}构建新的分支 
4.当前分支与master分支进行比较,看是否已经合并代码
5.执行shell:
5.1:定义变量PROJECT、BUILD_PATH(构建路径)、IMAGE_ENV、IMAGE_NAME、PATH_NUM
5.2:如果BUILD_PATH下的pactket目录下不为空,说明其他项目在构建,复制BUILD_PATH下所有,到一个新目录,新路径赋值给BUILD_PATH,删除新路径packet里的所有内容。
5.3:go语言打包-->运行打包命令-->构建成功后,拷贝程序至BUILD_PATH目录。
5.4:构建docker镜像--先cd到BUILD_PATH目录,再运行docker build命令--命令行方式添加环境变量 --build-arg server_name=${PROJECT}。
5.5:将镜像push到镜像仓库
5.6:更新k8s中的镜像--kubectl set image deployment/deployment 容器名=镜像名 -n 命名空间

四、具体shell

#[ $(echo "${GIT_TAG}" | grep TAG | wc -l) -ne 0  ] && git checkout ${GIT_TAG}|| git checkout

# 只需要修改PROJECT即可,其它配置无特殊需求不用修改
PROJECT=bizops-svr
BUILD_PATH=/xdfapp/data/build/go
IMAGE_ENV=dev
IMAGE_NAME=re******.cn/application/${PROJECT}:TAG-${BUILD_TIMESTAMP}
PATH_NUM=0
#GO_SRC=/xdfapp/server/go/src
		
# 判断目录是否为空

if [ $(ls ${BUILD_PATH}/packet/ | wc -l) -ne 0 ];then
    echo "其它项目在构建,正尝试新建目录构建。"
    cp -a ${BUILD_PATH} /xdfapp/data/build/${PROJECT}-${BUILD_TIMESTAMP}
    BUILD_PATH=/xdfapp/data/build/${PROJECT}-${BUILD_TIMESTAMP}
    rm -rf ${BUILD_PATH}/packet/*
    PATH_NUM=$(expr ${PATH_NUM} + 1)
fi

# build go 服务
#cp -a ${WORKSPACE} ${GO_SRC}/${PROJECT}
cd ${WORKSPACE}
#go env
export GOROOT=/xdfapp/server/go
go build -o release/bin/bizops-svr main.go
if [ $? -eq 0 ];then
    echo "构建成功。"
    # 拷贝程序至build目录
	cp -a ${WORKSPACE}/release/*  ${BUILD_PATH}/packet/
    #rm -rf ${GO_SRC}/${PROJECT}
else
    echo "构建失败。"
    #rm -rf ${GO_SRC}/${PROJECT}
    exit 1
fi


# 构建docker镜像
cd ${BUILD_PATH}
sudo docker build --build-arg server_name=${PROJECT} -t $IMAGE_NAME .

# 上传至harbor
sudo docker push $IMAGE_NAME


# 更新rancher 项目
kubectl  set image deployment/${PROJECT} $PROJECT=$IMAGE_NAME -n ${IMAGE_ENV}


if [ "${PATH_NUM}" -eq 0 ];then
    rm -rf packet/*
else
	rm -rf ${BUILD_PATH}
fi

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-02-28 16:03:51  更:2022-02-28 16:04:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 3:41:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码