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

自定义shell工具函数之pull_image()

这是一个名为pull_image的Shell脚本函数。让我来解释一下这个函数的功能:

function pull_image() {image=$1DOCKER_IMAGE_MIRROR=$(get_config_or_env 'DOCKER_IMAGE_MIRROR')if [[ "${DOCKER_IMAGE_MIRROR}" == "1" ]]; thenif [[ "$(uname -m)" == "x86_64" ]]; thenDOCKER_IMAGE_PREFIX="swr.cn-north-1.myhuaweicloud.com"fiif [[ "$(uname -m)" == "aarch64" ]]; thenDOCKER_IMAGE_PREFIX="swr.cn-north-4.myhuaweicloud.com"fiif [[ "$(uname -m)" == "loongarch64" ]]; thenDOCKER_IMAGE_PREFIX="swr.cn-southwest-2.myhuaweicloud.com"fielseDOCKER_IMAGE_PREFIX=$(get_config_or_env 'DOCKER_IMAGE_PREFIX')fiIMAGE_PULL_POLICY=$(get_config_or_env 'IMAGE_PULL_POLICY')if docker image inspect -f '{{ .Id }}' "$image" &> /dev/null; thenexits=0elseexits=1fiif [[ "$exits" == "0" && "$IMAGE_PULL_POLICY" != "Always" ]]; thenecho "[${image}] exist, pass"returnfiecho "[${image}] pulling"if [[ -n "${DOCKER_IMAGE_PREFIX}" && $(image_has_prefix "${image}") == "0" ]]; thendocker pull "${DOCKER_IMAGE_PREFIX}/${image}"docker tag "${DOCKER_IMAGE_PREFIX}/${image}" "${image}"docker rmi -f "${DOCKER_IMAGE_PREFIX}/${image}"elsedocker pull "${image}"fiecho ""
}

这个函数的功能是:

  1. 获取传入的镜像名称,并存储在image变量中。
  2. 获取DOCKER_IMAGE_MIRROR的配置或环境变量,并根据其值设置DOCKER_IMAGE_PREFIX变量。
  3. 获取IMAGE_PULL_POLICY的配置或环境变量。
  4. 使用docker image inspect命令检查镜像是否存在,如果存在则将exits设置为0,否则设置为1。
  5. 如果镜像存在且IMAGE_PULL_POLICY不等于"Always",则打印消息并返回。
  6. 如果需要拉取镜像,则根据DOCKER_IMAGE_PREFIX的值执行docker pull命令,并进行相应的标记和删除操作。
  7. 最后打印空行。

总体来说,这个函数的作用是根据配置和环境变量的设置来拉取镜像,并根据需要进行相应的操作。

相关文章:

自定义shell工具函数之pull_image()

这是一个名为pull_image的Shell脚本函数。让我来解释一下这个函数的功能: function pull_image() {image$1DOCKER_IMAGE_MIRROR$(get_config_or_env DOCKER_IMAGE_MIRROR)if [[ "${DOCKER_IMAGE_MIRROR}" "1" ]]; thenif [[ "$(uname -m…...

2019年认证杯SPSSPRO杯数学建模C题(第二阶段)保险业的数字化变革全过程文档及程序

2019年认证杯SPSSPRO杯数学建模 基于统计建模的车险业数字变革研究 C题 保险业的数字化变革 原题再现: 车险,即机动车辆保险。保险自身是一种分散风险、消化损失的经济补偿制度,车险即为分散机动车辆在行驶过程中可能发作的未知风险和损失…...

【数据结构和算法】反转链表

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 方法一:迭代(双指针) 2.2 方法二:递归 三、代码 3.…...

What is `GenericFilterBean` does?

GenericFilterBean 是 SpringWeb 框架中提供的一个抽象基类,其对 javax.servlet.Filter接口进行了封装和扩展,它简化了在 Servlet环境下创建自定义过滤器的工作。 GenericFilterBean 主要特点包括: 集成 Spring 容器: 由于它是一…...

突破通胀风险,聚焦现货黄金投资机遇

随着全球经济不断发展和金融市场的波动,通胀风险成为各界关注的焦点。在面对通胀带来的财务压力和资产贬值的威胁时,投资者都在寻找稳定且可靠的避险资产。而现货黄金作为一种值得瞩目的投资工具,正吸引着越来越多投资者的目光。 黄金作为一种…...

Jenkins集成Sonar Qube

下载插件 重启Jenkins 容器 sonarqube 使用令牌 Jenkins 配置 重新构建...

Angular系列教程之zone.js和NgZone

文章目录 什么是zone.jsZone的工作原理Zone的常见用途NgZone:Angular中的zone.js使用NgZone使用NgZone执行代码使用NgZone外部检测 结论 什么是zone.js 在Angular中,zone.js是一个非常重要的库,它为我们提供了一种跟踪和管理异步操作的机制。…...

阿里巴巴的第二代通义千问可能即将发布:Qwen2相关信息已经提交HuggingFace官方的transformers库

本文来自DataLearnerAI官方网站:阿里巴巴的第二代通义千问可能即将发布:Qwen2相关信息已经提交HuggingFace官方的transformers库 | 数据学习者官方网站(Datalearner) 通义千问是阿里巴巴开源的一系列大语言模型。Qwen系列大模型最高参数量720亿&#xf…...

肯尼斯·里科《C和指针》第6章 指针(6)编程的练习:查找字符

1.编写一个函数,它在一个字符串中进行搜索,查找在一个给定字符集合中出现的所有字符。这个函数的原型如下: char *find_char( char const *source, char const *chars ); 它的基本想法是查找source字符串中匹配chars字符串中任何字符的第1个…...

Entity Framework知识点整理

Entity Framework Entity Framework(EF)是微软提供的一种对象关系映射(Object-Relational Mapping,ORM)框架,用于在.NET应用程序和关系型数据库之间建立映射关系。它简化了数据访问层的开发,使…...

源码搭建教学:连锁餐饮APP开发实战

连锁餐饮APP,对于很多从事餐饮行业的人来说不会陌生,同样这个项目本身就有着很高的热度。今天,小编将深入为大家讲述一下此系统的前后端开发、数据库设计、用户界面设计等方面,让您深入了解全栈开发的方方面面。 一、项目准备与规…...

使用JavaScript实现一个在线画板

一、引言 随着Web技术的发展,网页上的交互性变得越来越重要。一个在线画板是一个很好的例子,它允许用户在网页上自由创作。在这篇博客中,我们将使用HTML5的Canvas元素和JavaScript来实现一个简单的在线画板 二、HTML结构 首先,…...

微信小程序如何自定义导航栏,怎么确定导航栏及状态栏的高度?导航栏被刘海、信号图标给覆盖了怎么办?

声明:本文为了演示效果,颜色采用的比较显眼,可根据实际情况修改颜色 问题描述 当我们在JSON中将navigationStyle设置成custom后,当前页面的顶部导航栏就需要我们制作了,但出现了一下几个问题: 导航栏的高…...

Spring Boot “How-to“ 指南中文文档-上

本文为官方文档直译版本。原文链接 篇幅较长,遂分两篇 Spring Boot "How-to" 指南中文文档-上 引言Spring Boot Application创建自己的FailureAnalyzer(故障分析器)自动配置故障诊断启动前自定义环境或应用程序上下文构建 Applicat…...

快速了解spring boot中的@idempotent注解

目的:一定时间内,同样的请求(业务参数相同)访问同一个接口,则只能成功一次,其余被拒绝 幂等实现原理就是利用AOP面向切面编程,在执行业务逻辑之前插入一个方法,生成一个token,存入redis并插入到…...

【手把手带你玩转MyBatis】基础篇:挥洒自如的Java接口与注解

目录 1. MyBatis接口与Mapper接口 2. 注解属性解析 3. 使用接口实现数据访问 内容: 在MyBatis框架中,除了传统的XML映射文件方式之外,还支持使用Java接口和注解进行SQL映射。这种方式简化了开发流程,使得代码更简洁、直观&a…...

uniapp中u-switch子组件点击触发到父组件(阻止事件冒泡)

解决方法&#xff1a;在u-switch 外面包一个view标签&#xff0c;并使用tap.stop.prevent 可以阻止事件冒泡 .stop 阻止事件继续传播到父元素&#xff0c;prevent阻止事件默认行为 <view tap.stop.prevent><u-switch v-model"val_switch" change"cha…...

2024“华数杯”(A题)|放射性废水扩散|国际大学生数学建模竞赛建模解析,小鹿学长带队指引全代码文章与思路

我是小鹿学长&#xff0c;就读于上海交通大学&#xff0c;截至目前已经帮200人完成了建模与思路的构建的处理了&#xff5e; 完整内容可以在文章末尾领取&#xff01; 这回带大家体验一下2024“华数杯”国际大学生数学建模竞赛呀&#xff01; 此题涉及到放射性废水从日本排放…...

EtherCAT主站SOEM -- 16 --Qt-Soem通过界面按键控制电机转圈圈PV模式

EtherCAT主站SOEM -- 16 --Qt-Soem通过界面按键控制电机转圈圈 0 QT-SOEM视频预览及源代码下载:0.1 QT-SOEM视频预览0.2 QT-SOEM源代码下载1 程序文件修改替换1.1 allvalue.h1.2 motrorcontrol.h1.3 mainwindow.cpp1.4 motrorcontrol.cpp2 ui界面显示该文档修改记录:总结上下…...

芯品荟 | 电脑机箱键盘副屏市场调研报告

一.产品简介 1.带TFT彩屏电脑机箱 2.带小TFT彩屏电脑键盘 为什么电脑机箱&键盘&#xff0c;要带屏&#xff1f; 带屏的电脑机箱&键盘客户群体? 电竞玩家、设计师、电子发烧友、股民...... 二、市场规模 中国电脑机箱年产量约6000万台&#xff0c;键盘年产量约3亿…...

5分钟掌握跨平台音乐格式转换:Unlock-Music浏览器端音频解密终极指南

5分钟掌握跨平台音乐格式转换&#xff1a;Unlock-Music浏览器端音频解密终极指南 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库&#xff1a; 1. https://github.com/unlock-music/unlock-music &#xff1b;2. https://git.unlock-music.dev/um/web 项…...

2026年PCB行业研究报告

随着全球算力需求爆发式增长&#xff0c;印制电路板&#xff08;PCB&#xff09;已从传统的电子连接载体&#xff0c;演进为决定AI集群信号完整性的核心物理瓶颈。PCB不仅是电子工业的母板&#xff0c;更是支撑人工智能与大数据等新质生产力落地的底层基石。当前&#xff0c;行…...

APT32F110 RISC-V开发板printf重定向与串口花式表白项目实战

1. 项目概述&#xff1a;从“Hello World”到“花式表白”的嵌入式浪漫作为一名在嵌入式领域摸爬滚打了十多年的老工程师&#xff0c;我调试过无数块开发板&#xff0c;写过数不清的“Hello World”。但当我拿到爱普特APT32F110这块基于国产RISC-V内核的开发板时&#xff0c;我…...

2026 大模型企业画像梳理技术解析:混乱画像规范方法深度测评

引言随着 AI 搜索成为商业信息获取的主要渠道&#xff0c;大模型生成的企业画像准确性直接影响企业品牌形象和获客效果。据中国 GEO 行业协会 2026 年调研数据显示&#xff0c;超过 76% 的企业反映大模型生成的企业画像存在信息混乱、错误遗漏、业务不匹配等问题&#xff0c;其…...

昇腾CANN ops-blas 仓:GEMM 算子的高性能实现

前言 矩阵乘法是深度学习里最核心的操作&#xff0c;没有之一。Transformer 的 Attention 要做 QK.T 和 PV&#xff0c;FFN 要做两 个 MatMul。GEMM&#xff08;General Matrix Multiply&#xff09;就是专门优化矩阵乘的算子。ops-blas 仓是 CANN 的线性代数基础算子库&#x…...

质谱仪核心部件与色谱联用技术全解析:从原理到实战应用

1. 质谱分析&#xff1a;从“称重”分子到解码物质世界在化学、生物、医药乃至环境科学领域&#xff0c;我们常常需要回答一个看似简单却至关重要的问题&#xff1a;这个东西到底是什么&#xff1f;它由什么组成&#xff1f;含量有多少&#xff1f;面对一瓶成分不明的液体、一块…...

如何为SUSI ViberBot添加自定义功能:扩展按钮与交互体验的完整指南

如何为SUSI ViberBot添加自定义功能&#xff1a;扩展按钮与交互体验的完整指南 【免费下载链接】susi_viberbot Viberbot for SUSI AI http://susi.ai 项目地址: https://gitcode.com/gh_mirrors/su/susi_viberbot 想要为你的SUSI ViberBot添加个性化功能吗&#xff1f;…...

飞书多维表格还能这么玩?我用它搭了个超好用的 AI 批量生图工具

大家好&#xff01;上一篇文章我分享了一个飞书多维表格自动化插件的核心功能&#xff0c;很多朋友都在问&#xff1a;这个插件到底能解决什么实际问题&#xff1f;今天就用我最近刚搭好的一个实战案例&#xff0c;给大家好好拆解一下。我用飞书多维表格&#xff0c;从零搭建了…...

国产多模态大模型 vs DALL-E:本土化突围与全球竞技

国产多模态大模型 vs DALL-E&#xff1a;本土化突围与全球竞技 引言 在AIGC浪潮席卷全球的当下&#xff0c;OpenAI的DALL-E系列无疑是图像生成领域的耀眼明星&#xff0c;其惊人的创造力和对自然语言的深刻理解&#xff0c;定义了“文生图”的新高度。然而&#xff0c;当我们聚…...

ESP32 + SPH0645麦克风:用Python在电脑上实时播放音频的保姆级教程(附避坑指南)

ESP32 SPH0645麦克风&#xff1a;Python服务端实时音频流处理实战指南 在物联网和嵌入式音频处理领域&#xff0c;实时音频流的采集与传输一直是个既基础又关键的挑战。ESP32作为一款性价比极高的Wi-Fi/蓝牙双模芯片&#xff0c;搭配专业级数字麦克风SPH0645&#xff0c;能够构…...