当前位置: 首页 > article >正文

内网环境,基于k8s docer 自动发包

背景:生产环境是内网,无法连接外部git环境,需要上传tar包打成镜像,然后发布。

简单写了个脚本,记录下方便复用。

将tar包和脚本拷贝到同一个目录下。

使用方式:
tar 包名称格式:服务名-版本号.tar
启动命令 ./docker-load.sh 服务名 版本号
脚本中的 docker 的 ip port、 镜像名称、k8s的命名空间换成你自己。

脚本:

#!/bin/bash

SERVICE_NAME="$1"
SERVICE_VER="$2"

TAR_FILE=${SERVICE_NAME}-${SERVICE_VER}.tar
IMAGE_NAME=registry.XXX.com/dev/${SERVICE_NAME}:${SERVICE_VER}
TARGET_TAG=DOCKER-IP:PORT/NAMESPACE/${SERVICE_NAME}:${SERVICE_VER}

# 本地加载镜像
echo "loading image from $TAR_FILE ..."
docker load -i  "$TAR_FILE"
#IMAGE_ID=$(docker load -i "$TAR_FILE" | awk '/Loaded image:/ {pringt $3}')

#if [ -z "$IMAGE_ID" ]; then
#  echo "Failed to load image from $TAR_FILE"
#  exit 1
#fi

#echo "Image loaded with ID: $IMAGE_ID"

# 打tag
echo "Tagging image  $IMAGE_ID as $TARGET_TAG ..."
docker tag  "$IMAGE_NAME"  "$TARGET_TAG"

# 推送镜像
echo "Pushing image  $TARGET_TAG ..."
docker push "$TARGET_TAG"

# k8s升级镜像
echo "Set image $SERVICE_NAME  $TARGET_TAG ..."
kubectl set image -n NAMESPACE deployment  $SERVICE_NAME  ${SERVICE_NAME}=$TARGET_TAG  --record


http://www.kler.cn/a/390452.html

相关文章:

  • Jmeter基础篇(22)服务器性能监测工具Nmon的使用
  • 矢量拟合(1)Sanathanan–Koerner算法
  • Rust 整数
  • 【知识科普】SPA单页应用程序介绍
  • 前端Cypress自动化测试全网详解
  • 回归分析学习
  • go语言中的错误处理详解
  • 电脑桌面水印是什么,在哪里设置?手把手教会你三个方法,给电脑屏幕添加水印!(亲测好用)
  • linux-c 使用c语言操作sqlite3数据库-1
  • 工程认证与Spring Boot:计算机课程管理的新探索
  • Javascript高级—深浅拷贝
  • Elasticsearch知识点汇总
  • 调用API进行验证码测试/python
  • 【vue3文件上传同时出现两个提示框,一个提示成功,一个提示失败,一个是用写死的,一个是接口返回的】
  • Android 图片保存
  • electron 中 contextBridge 作用
  • JVM 处理多线程并发执行
  • 什么是JVM实现
  • 电力巡检新利器:输电线路全景与云台变焦视频监控装置
  • 【算法-插入排序】基础知识,代码示例和应用场景
  • IDEA 如何手动创建spring boot工程
  • Day107:代码审计-PHP模型开发篇MVC层RCE执行文件对比法1day分析0day验证
  • .NET Core 应用程序如何在 Linux 中创建 Systemd 服务 ?
  • Vue3 - 小兔仙 - day2
  • 面试经典 150 题:121,125
  • 批量混剪矩阵发布助力短视频营销快速获客