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

这篇具有很好参考价值的文章主要介绍了自定义shell工具函数之pull_image()。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

function pull_image() {
  image=$1
  DOCKER_IMAGE_MIRROR=$(get_config_or_env 'DOCKER_IMAGE_MIRROR')
  if [[ "${DOCKER_IMAGE_MIRROR}" == "1" ]]; then
    if [[ "$(uname -m)" == "x86_64" ]]; then
      DOCKER_IMAGE_PREFIX="swr.cn-north-1.myhuaweicloud.com"
    fi
    if [[ "$(uname -m)" == "aarch64" ]]; then
      DOCKER_IMAGE_PREFIX="swr.cn-north-4.myhuaweicloud.com"
    fi
    if [[ "$(uname -m)" == "loongarch64" ]]; then
      DOCKER_IMAGE_PREFIX="swr.cn-southwest-2.myhuaweicloud.com"
    fi
  else
    DOCKER_IMAGE_PREFIX=$(get_config_or_env 'DOCKER_IMAGE_PREFIX')
  fi

  IMAGE_PULL_POLICY=$(get_config_or_env 'IMAGE_PULL_POLICY')

  if docker image inspect -f '{{ .Id }}' "$image" &> /dev/null; then
    exits=0
  else
    exits=1
  fi

  if [[ "$exits" == "0" && "$IMAGE_PULL_POLICY" != "Always" ]]; then
    echo "[${image}] exist, pass"
    return
  fi

  echo "[${image}] pulling"
  if [[ -n "${DOCKER_IMAGE_PREFIX}" && $(image_has_prefix "${image}") == "0" ]]; then
    docker pull "${DOCKER_IMAGE_PREFIX}/${image}"
    docker tag "${DOCKER_IMAGE_PREFIX}/${image}" "${image}"
    docker rmi -f "${DOCKER_IMAGE_PREFIX}/${image}"
  else
    docker pull "${image}"
  fi
  echo ""
}

这个函数的功能是:

  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. 最后打印空行。

总体来说,这个函数的作用是根据配置和环境变量的设置来拉取镜像,并根据需要进行相应的操作。文章来源地址https://www.toymoban.com/news/detail-797001.html

到了这里,关于自定义shell工具函数之pull_image()的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 利用Figlet工具创建酷炫Linux Centos8服务器-登录欢迎界面-SHELL自动化编译安装代码

    因为我们需要生成需要的特定字符,所以需要在当前服务器中安装Figlet,默认没有安装包的,其实如果我们也只要在一台环境中安装,然后需要什么字符只要复制到需要的服务器中,并不需要所有都安装。同样的,我们也可以利用此生成的字符用到脚本运行的开始起头部分,

    2024年02月12日
    浏览(46)
  • Shell 函数详解(函数定义、函数调用)

    Shell 函数的本质是一段可以重复使用的脚本代码,这段代码被提前编写好了,放在了指定的位置,使用时直接调取即可。 Shell 中的函数和C++、Java、Python、C# 等其它编程语言中的函数类似,只是在语法细节有所差别。 Shell 函数定义的语法格式如下:  对各个部分的说明: f

    2024年02月09日
    浏览(41)
  • 【Linux】自定义shell

    👑作者主页:@安 度 因 🏠学习社区:安度因 📖专栏链接:Linux

    2024年02月01日
    浏览(22)
  • Linux自定义shell编写

    经过了创建进程,终止进程,进程等待和进程程序替换之后, 我们就可以借助这些知识实现一个简单的shell命令行解释器了 温馨提示: 建议大家自己写一遍,这些代码分块之后每一个函数都很简单, 不过实现过程中可能会有各种各样非常细枝末节的地方被我们所忽视 因此可能会发生

    2024年02月04日
    浏览(32)
  • 【Linux专区】如何配置新服务器 | 添加普通用户到sudoers | 配置vim | git免账号密码pull push

    💞💞 欢迎来到 Claffic 的博客 💞💞      👉  专栏 : 《Linux专区》👈 💬 前言: 时隔131天,你的好友Claffic重新发文了!(✿◕‿◕✿) 上期已经带大家白嫖了阿里云服务器,如果你还没有云服务器,请移步至【Linux专区】 环境搭建 | 带你白嫖七个月阿里云服务器_如何用

    2024年02月03日
    浏览(47)
  • linux shell脚本函数

    目录 一、函数        1.传参 二、返回值        return 三、终止符         exit 四、实验                   一、函数         概念:函数是定义一个函数名,可以调用函数方法,完成便捷处理。         函数作用:    1.避免方法名重复。   2.将代码分割成一块一块,便

    2024年02月07日
    浏览(35)
  • 【linux】 Shell函数返回值

    return 返回 shell中通过return返回是有限制的, 必须是数字 ,最大返回255,超过255,则从0开始计算。 通常仅返回0或1;0表示成功,1表示失败 。 通过echo 直接返回。 在没有return 语句,函数将以最后一条命令运行结果,作为返回值。因此,通常在 最后一行以echo “xxx”语句 作为

    2024年02月04日
    浏览(21)
  • docker pull报错error pulling image configuration: received unexpected HTTP status: 530或者500

    执行docker pull或者执行docker-compose up去拉镜像的时候报上述错误 修改系统中docker对应的配置文件即可,如下: 重新启动 docker :service docker start 然后再重新执行docker pull即可

    2024年02月11日
    浏览(32)
  • linux shell函数和返回值

    shell函数可以有返回值,但是只能返回0-255作为状态值,不能返回字符串,字符串可以通过其他方式传递给调用者 小于255的值 大于255的值 基本是对256取余的返回值 通过$(函数调用和参数),通过$()调用,函数中的echo不会打印到控制台,直接调用函数,则会调用控制台 返回非纯

    2024年02月10日
    浏览(28)
  • Linux&Shell--多服务器自动登录连接

    sshpass 是一个命令行工具,用于自动化SSH密码认证。它通常在脚本或自动化任务中使用,其中您需要提供密码以建立SSH连接,而无需用户干预。可以直接将密码作为命令行参数或通过文件提供,以便在建立SSH连接时自动输入密码。这对于需要自动化处理SSH连接的任务非常有用

    2024年02月03日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包