一、安装阿里云linux客户端工具

选择官网下载地址

# wget wget https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-amd64.tgz

# tar -xf aliyun-cli-linux-latest-amd64.tgz

# cp aliyun /usr/local/bin

二、使用RAM进行子账号权限管理

创建RAM子账号,并对该子账号授权,记录账号的AccessKey ID等信息

权限名称

AliyunContainerRegistryFullAccess

AliyunContainerRegistryReadOnlyAccess

三、配置客户端工具

# aliyun configure
Configuring profile 'default' in 'AK' authenticate mode...
Access Key Id [*********************kCg]:
Access Key Secret [***************************2w7]:
Default Region Id [cn-hangzhou]:
Default Output Format [json]: json (Only support json)
Default Language [zh|en] zh:
Saving profile[default] ...Done.
  • Access ID:RAM子账号的ID

  • Access Secret:RAM子账号的Secret

  • Region ID:阿里云账号中镜像仓库的区位(这边是cn-hangzhou)

  • Language:zh

四、获取镜像信息

aliyun cr GetRepoTags --help
阿里云CLI命令行工具 3.0.64 Product: cr (容器镜像服务)
Method: GET
PathPattern: /repos/[RepoNamespace]/[RepoName]/tags Parameters:
--RepoName String Required
--RepoNamespace String Required
--Page Integer Optional
--PageSize Integer Optional
  • 使用--help 查看使用方法,cr为容器镜像服务
# aliyun cr GetRepoTags --RepoNamespace xxxx --RepoName xxxxxxx
{
"data": {
"page": 1,
"pageSize": 30,
"tags": [
{
"digest": "c06e0fe7ca4759dc15c517007a21465cfce16cc35ac3f83058c306880f804ea9",
"imageCreate": 1606813621000,
"imageId": "878046fe77276fe5ff5883537a5435734c9d21a953b271534df8d01f4da14e1e",
"imageSize": 154166831,
"imageUpdate": 1606813621000,
"status": "NORMAL",
"tag": "1.0.2"
}
],
"total": 1
}
}
  • --RepoNamespace:阿里云容器镜像服务中的命名空间

  • --RepoName:阿里云容器镜像服务中的镜像仓库名称

只获取tag,需要提前安装jq命令

# aliyun cr GetRepoTags --RepoNamespace xxxx --RepoName xxxxxxxxx | jq ".data.tags[].tag"
"1.0.2"

五、Jenkins配置

import groovy.json.JsonSlurperClassic

def cmd = "/var/jenkins_home/aliyun cr GetRepoListByNamespace   --RepoNamespace  payfun --PageSize  100"
def aliyun_images_json = cmd.execute() // Parse JSON into Groovy object
def data = new JsonSlurperClassic().parseText(aliyun_images_json.text) // Prepare the results list
def aliyun_images = []; // Add all tags
data.data.repos.each { aliyun_images.push(it.repoName) } return aliyun_images

import groovy.json.JsonSlurperClassic

def cmd1 = "/var/jenkins_home/aliyun cr  GetRepoTags  --RepoNamespace  payfun --RepoName  " +  project
def aliyun_tags_json = cmd1.execute() // Parse JSON into Groovy object
def data1 = new JsonSlurperClassic().parseText(aliyun_tags_json.text) // Prepare the results list
def aliyun_tags = []; // Add all tags
data1.data.tags.each { aliyun_tags.push(it.tag) } return aliyun_tags

import groovy.json.JsonSlurperClassic

def cmd1 = "/var/jenkins_home/aliyun cr  GetRepoTags  --RepoNamespace  xxxx --RepoName  " +  'aiotjp-data'
def aliyun_tags_json = cmd1.execute() // Parse JSON into Groovy object
def data1 = new JsonSlurperClassic().parseText(aliyun_tags_json.text) // Prepare the results list
def aliyun_tags = []; // Add all tags
data1.data.tags.each { aliyun_tags.push(it.tag) } return aliyun_tags



jenkins 发版获取镜像仓库中tag的更多相关文章

  1. Jenkins发版通知企业微信机器人

    1)开始通知 在Jenkins发版过程的第一步添加下面内容,调用下面脚本实现机器人发版通知(注意脚本路径和传参) ${BUILD_USER}是Jenkins内置变量,执行发布的用户名,需要安装插件-B ...

  2. 配置kuernetes集群pod拉取私有镜像仓库中的镜像

    目录 1 背景说明 2 实现方法 3 具体实现 配置镜像仓库项目为公开类型(任何人可以访问) 配置docker-registry类型的secret(pod使用secret获取镜像认证) 通过账户名密码 ...

  3. 用node.js写一个jenkins发版脚本

    背景 每次到网页里手动发版有点烦,写个脚本来提高开发效率. CFG 在 jenkins 设置里获取 API TOKEN. 把 host 和账号密码拼接起来就可以通过鉴权. const token = ...

  4. jenkins发版脚本更新

    jenkins 项目名中明确了 是jar tar.gz war包研发需要提供  项目名-地点-环境(研发.测试.生产)-应用项目名称(admin)-包格式(jar\war\gz) deployment ...

  5. vs 发版时,在发版的文件夹中,找不到应该有的某个文件

    检查:VS中,这个文件右击属性,查看生成操作.如果是“无”,改为“内容”.再重新发布就没问题了. 想看发版出来的内容包括哪些,可以从“发布”--“应用程序文件”查看

  6. Jenkins拉取Git远程仓库中指定目录至本地指定目录

    Jenkins拉取源码是非常实用的操作,比如每天在跑自动化测试前,拉取Git远程仓库中最新的脚本至本地.那么,Jenkins如何拉取Git远程仓库中指定目录至本地指定目录呢?下面来看看具体的设置方法. ...

  7. jenkins发版svn

    1.在mac上直接安装Jenkins,下载地址 : 2.安装插件:系统管理-->插件管理 publish over ssh Exec command: cd /usr/local/apache- ...

  8. Jenkins日常运维笔记-重启数据覆盖问题、迁移、基于java代码发版(maven构建)

    之前在公司机房部署了一套jenkins环境,现需要迁移至IDC机房服务器上,迁移过程中记录了一些细节:1)jenkins默认的主目录放在当前用户家目录路径下的.jenkins目录中.如jenkins使 ...

  9. Harbor私有仓库中如何彻底删除镜像释放存储空间?

    简介: Harbor私有仓库运行一段时间后,仓库中存有大量镜像,会占用太多的存储空间.直接通过Harbor界面删除相关镜像,并不会自动删除存储中的文件和镜像.需要停止Harbor服务,执行垃圾回收命令 ...

  10. Docker——Registry搭建私有镜像仓库

    前言 在 Docker 中,当我们执行 docker pull xxx 的时候,它实际上是从 registry.hub.docker.com 这个地址去查找,这就是Docker公司为我们提供的公共仓库 ...

随机推荐

  1. VUE百度地图API调用(手机端、PC端、微信通用)

    百度地图API-示例中心: https://lbsyun.baidu.com/jsdemo.htm#aCreateMap 1.引入百度地图(此处用到的是V2.0版本) 1> 建立一个js文件,例 ...

  2. 使用msf生成shellcode并用Go免杀?

    msf生成的裸马现在已经不行了,加壳也只能加冷门壳了,VMP,Shielden,upx不是失效就是效果很差,所以当下,得用shellcode来免杀了 msfvenom -a x86 --platfor ...

  3. 全网最佳IoT命令行超级工具箱|帮你轻松解决百万物联网设备测试和联调

    程序员离不开命令行,许多经典命令是每天必用的,比如ls 和 cd. 作为一个物联网开发和学习人员,IoT设备协议的测试联调是工作中很重要的一环!我有很多时刻都想拥有一个能集成常见物联网协议的客户端工具 ...

  4. 1688关键字搜索新品数据API接口(item_search_new-按关键字搜索新品数据)

    1688关键字搜索新品数据API接口(item_search_new-按关键字搜索新品数据)代码接口教程如下: 公共参数 名称 类型 必须 描述key String 是 调用key(必须以GET方式拼 ...

  5. 二进制安装Kubernetes(k8s) v1.24.0 IPv4/IPv6双栈 (三主俩从)

    二进制安装Kubernetes(k8s) v1.24.0 IPv4/IPv6双栈 (三主俩从) Kubernetes 开源不易,帮忙点个star,谢谢了 介绍 kubernetes二进制安装 后续尽可 ...

  6. PHP读取XML文件的三种方式

    一  用  simplexml_load_file 读取xml文件 <?php $xml_array=simplexml_load_file('person.xml'); //将XML中的数据, ...

  7. Swift Codable协议实战:快速、简单、高效地完成JSON和Model转换!

    前言 Codable 是 Swift 4.0 引入的一种协议,它是一个组合协议,由 Decodable 和 Encodable 两个协议组成.它的作用是将模型对象转换为 JSON 或者是其它的数据格式 ...

  8. MySql中执行计划如何来的——Optimizer Trace

    作者:京东物流 籍磊 1.前言 当谈到MySQL的执行计划时,会有很多同学想:"我就觉得使用其他的执行方案比EXPLAIN语句输出的方案强,凭什么优化器做的决定与我得不一样?".这 ...

  9. vue2.x/vue3.0中使用ts

    vue2.x(vue-cli3)中使用ts      https://www.jianshu.com/p/3cbcdd766295 https://www.cnblogs.com/xiaohuizha ...

  10. ubuntu20安装docker、redis、mysql及部署net6应用

    一.更新系统软件包索引 sudo apt update 二.安装docker sudo apt install docker.io 三.在docker中安装Mysql 拉取mysql镜像 docker ...