05-11 周六 一键完成FastBuild镜像部署功能的开发

2024-05-12 15:44

本文主要是介绍05-11 周六 一键完成FastBuild镜像部署功能的开发,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

05-11 周六 一键完成FastBuild镜像部署功能的开发
时间版本修改人描述
2024年5月11日21:50:15V0.1宋全恒新建文档

简介

注,需要提前完成从DockerService到FastBuild主机的免密,因为脚本使用了ssh命令。

博客描述
04-22 周日 阿里云-瑶光上部署FastBuild过程(配置TLS、自定义辅助命令)-CSDN博客👍👍👍👍记录了部署FastBuild的完整过程,基本流程,该文章主要描述自动化,即使用CI工具构建镜像,并部署服务部分。
04-25 周四 FastBuild重构实践-TLS、全局捕获异常、一键配置-CSDN博客记录了第一次优化的过程,完成配置文件移入数据库
05-08 周三 FastBuild FastAPI 引入并发支持和全局捕获异常-CSDN博客记录了并发支持和全局捕获异常。解决拉取和check解耦问题以及超时问题。

脚本内容

手动执行过程

10.200.88.53/library/dros-fast-build-service:master.20240507105741-npg
docker pull 10.200.88.53/library/dros-fast-build-service:master.20240507105741-npg
docker save -o dros-fast-build-service-master-20240507105741-npg.tar 10.200.88.53/library/dros-fast-build-service:master.20240507105741-npgnerdctl load -i dros-fast-build-service-master-20240507105741-npg.tar/etc/iscos/patch/dros-fast-build/charts目录下 修改 imageTag 成最新版本
image-20240507191910270
root@iZ1pp06qu51oiqqddsrnuxZ:/etc/iscos/patch/dros-fast-build/charts# helm upgrade --install dros-fast-build-service . 
Release "dros-fast-build-service" has been upgraded. Happy Helming!
NAME: dros-fast-build-service
LAST DEPLOYED: Tue May  7 19:23:35 2024
NAMESPACE: default
STATUS: deployed
REVISION: 2
TEST SUITE: None
NOTES:
1. Get the application URL by running these commands:
kubectl --namespace default get pod

脚本开发

 脚本名称为deploy_fb.sh,wei

#!/bin/bash # 2024年5月11日20:35:19
# 用于拉取CI的镜像,并部署到FB服务
# 注意,需要事先配置好从DockerService到FastBuild,主机的免密
# $1 内容为10.200.88.53/library/dros-fast-build-service:master.20240511122313-npg
full_image_name=$1
fb_host=10.200.88.43config_file=/etc/iscos/patch/dros-fast-build/charts/values.yaml
charts_dir=$(dirname "$config_file")if [ $# -ne 1 ]; thenecho "Usage: $0 <full_image_name>"exit 2
fiif [ -z "$1" ]; thenexit 3
fiimage_base_name=$(echo "$full_image_name" | awk -F'/' '{print $NF}')
tag=$(echo "$image_base_name" | awk -F':' '{print $2}')
new_image_tar_name=$(echo "$image_base_name" | awk -F':' '{gsub(/\./, "-", $2); gsub(/:/, "-", $1); print $1"-"$2".tar"}')echo "简单镜像名称: $image_base_name"
echo "tag名称: $tag"
echo "将要保存的镜像名称: $new_image_tar_name"
docker pull $1echo "将镜像导出成压缩包: ${new_image_tar_name}"
docker save -o $new_image_tar_name $full_image_nameecho
echoecho "将镜像压缩包: ${new_image_tar_name}拷贝到FastBuild主机"
scp $new_image_tar_name $fb_host:`pwd`
# 远程执行导入新镜像
ssh $fb_host "cd /root && nerdctl load -i $new_image_tar_name"ssh root@$fb_host "sed -i 's/imageTag:.*npg$/imageTag: $tag/g' $config_file"
echo “使用helm完成部署”
ssh root@$fb_host "cd ${charts_dir}; helm upgrade --install dros-fast-build-service ."

 在编辑脚本的时候,还是尽量使用vscode吧,不然变量名重新命名总是很容易忘记某个,导致失败,调试很花时间。

脚本使用

 使用root账户连接至10.200.88.44,在Jenkins获取新ci得到的镜像名称,然后执行如下命令即可:

image-20240511222107710
./deploy_fb.sh 10.200.88.53/library/dros-fast-build-service:master.20240511140630-npg

 脚本会自动拉取镜像,保存为tar,并传送到FastBuild主机,修改配置文件,完成部署。

总结

 能够熟练的掌握一两门编程语言真的很重要,这样可以减少许多重复性的工作,让人舒服很多。小进步可以让人有成就感。不过,不行了,今天有的太疯狂了,为单位加班到23:50了。

这篇关于05-11 周六 一键完成FastBuild镜像部署功能的开发的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/983049

相关文章

Spring Boot整合Redis注解实现增删改查功能(Redis注解使用)

《SpringBoot整合Redis注解实现增删改查功能(Redis注解使用)》文章介绍了如何使用SpringBoot整合Redis注解实现增删改查功能,包括配置、实体类、Repository、Se... 目录配置Redis连接定义实体类创建Repository接口增删改查操作示例插入数据查询数据删除数据更

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

使用EasyPoi快速导出Word文档功能的实现步骤

《使用EasyPoi快速导出Word文档功能的实现步骤》EasyPoi是一个基于ApachePOI的开源Java工具库,旨在简化Excel和Word文档的操作,本文将详细介绍如何使用EasyPoi快速... 目录一、准备工作1、引入依赖二、准备好一个word模版文件三、编写导出方法的工具类四、在Export

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

docker 重命名镜像的实现方法

《docker重命名镜像的实现方法》在Docker中无法直接重命名镜像,但可通过添加新标签、删除旧镜像后重新拉取/构建,或在DockerCompose中修改配置文件实现名称变更,感兴趣的可以了解一下... 目录使用标签(Tagging)删除旧的php镜像并重新拉取或构建使用docker Compose在Do

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

C#实现高性能拍照与水印添加功能完整方案

《C#实现高性能拍照与水印添加功能完整方案》在工业检测、质量追溯等应用场景中,经常需要对产品进行拍照并添加相关信息水印,本文将详细介绍如何使用C#实现一个高性能的拍照和水印添加功能,包含完整的代码实现... 目录1. 概述2. 功能架构设计3. 核心代码实现python3.1 主拍照方法3.2 安全HBIT

linux部署NFS和autofs自动挂载实现过程

《linux部署NFS和autofs自动挂载实现过程》文章介绍了NFS(网络文件系统)和Autofs的原理与配置,NFS通过RPC实现跨系统文件共享,需配置/etc/exports和nfs.conf,... 目录(一)NFS1. 什么是NFS2.NFS守护进程3.RPC服务4. 原理5. 部署5.1安装NF