jenkins 发版获取镜像仓库中tag
一、安装阿里云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的更多相关文章
- Jenkins发版通知企业微信机器人
1)开始通知 在Jenkins发版过程的第一步添加下面内容,调用下面脚本实现机器人发版通知(注意脚本路径和传参) ${BUILD_USER}是Jenkins内置变量,执行发布的用户名,需要安装插件-B ...
- 配置kuernetes集群pod拉取私有镜像仓库中的镜像
目录 1 背景说明 2 实现方法 3 具体实现 配置镜像仓库项目为公开类型(任何人可以访问) 配置docker-registry类型的secret(pod使用secret获取镜像认证) 通过账户名密码 ...
- 用node.js写一个jenkins发版脚本
背景 每次到网页里手动发版有点烦,写个脚本来提高开发效率. CFG 在 jenkins 设置里获取 API TOKEN. 把 host 和账号密码拼接起来就可以通过鉴权. const token = ...
- jenkins发版脚本更新
jenkins 项目名中明确了 是jar tar.gz war包研发需要提供 项目名-地点-环境(研发.测试.生产)-应用项目名称(admin)-包格式(jar\war\gz) deployment ...
- vs 发版时,在发版的文件夹中,找不到应该有的某个文件
检查:VS中,这个文件右击属性,查看生成操作.如果是“无”,改为“内容”.再重新发布就没问题了. 想看发版出来的内容包括哪些,可以从“发布”--“应用程序文件”查看
- Jenkins拉取Git远程仓库中指定目录至本地指定目录
Jenkins拉取源码是非常实用的操作,比如每天在跑自动化测试前,拉取Git远程仓库中最新的脚本至本地.那么,Jenkins如何拉取Git远程仓库中指定目录至本地指定目录呢?下面来看看具体的设置方法. ...
- jenkins发版svn
1.在mac上直接安装Jenkins,下载地址 : 2.安装插件:系统管理-->插件管理 publish over ssh Exec command: cd /usr/local/apache- ...
- Jenkins日常运维笔记-重启数据覆盖问题、迁移、基于java代码发版(maven构建)
之前在公司机房部署了一套jenkins环境,现需要迁移至IDC机房服务器上,迁移过程中记录了一些细节:1)jenkins默认的主目录放在当前用户家目录路径下的.jenkins目录中.如jenkins使 ...
- Harbor私有仓库中如何彻底删除镜像释放存储空间?
简介: Harbor私有仓库运行一段时间后,仓库中存有大量镜像,会占用太多的存储空间.直接通过Harbor界面删除相关镜像,并不会自动删除存储中的文件和镜像.需要停止Harbor服务,执行垃圾回收命令 ...
- Docker——Registry搭建私有镜像仓库
前言 在 Docker 中,当我们执行 docker pull xxx 的时候,它实际上是从 registry.hub.docker.com 这个地址去查找,这就是Docker公司为我们提供的公共仓库 ...
随机推荐
- Unity3D中的Attribute详解(一)
首先来看一下微软官方对Attributes(C#)的定义: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/conce ...
- Azure Terraform(十三)提升 Azure Web App Plan 的性能
一,引言 一,引言 我们是否正在为部署在云主机上的应用程序性能缓慢和停机问题而苦恼?我们是否正在因为云主机上仅仅部署了应用程序,在流量平缓的时候而浪费大量的计算资源而心疼荷包.那么让我们来一起看看 A ...
- 关于Java基础中的异常处理知识点
Java中的异常(Exception),史上最全的教程来啦~_smilehappiness的博客-CSDN博客 以及Java:详解Java中的异常(Error与Exception)_王小二(海阔天空) ...
- Python 3.11.官方文档
索引 模块 | Python » English Spanish French Japanese Korean Brazilian Portuguese Simplified Chinese Trad ...
- python:模拟购票的小程序
问题描述:小白学习python的第N天,继续练习.做一个模拟购票的小程序,没有用数据库和文件来存储数据,只是能够单词选择. # hzh 每天进步一点点 # 2022/5/13 17:24 import ...
- Java GC基础知识
对象存活判断 引用计数 在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一:当引用失效时,计数器值就减一:任何时刻计数器为零的对象就是不可 能再被使用的 引用计数法的缺陷: publi ...
- 香,一套逻辑轻松且智能解决PyQt中控件数值验证的问题
在PyQt开发中,时常需要对控件的值进行校验,如需要校验QCheckBox是否被选中,QLabel是否校验值是否为空等等.在复杂的业务场景下,这类控件如果数量很多,逐个校验就显得麻烦,需要一一获得控件 ...
- PyTorch实践模型训练(Torchvision)
模型训练的开发过程可以看作是一套完整的生产流程,这些环节包括: 数据读取.网络设计.优化方法与损失函数的选择以及一些辅助的工具等,TorchVision是一个和PyTorch配合使用的Python包, ...
- Docker Compose 部署GitLab
先决条件 Docker Engine和Docker Compose是必需的.请参阅在CentOS上安装Docker Engine. 建议使用4核的服务器,同时至少分配4G的内存,理论上4核4G可最多支 ...
- 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(14)-Charles过滤网络请求
1.简介 在日常工作测试中,经常要抓包看请求的request,response是不是传的对,返回的字段值对不对,众多的请求中看得眼花缭乱,如何找到自己想要的请求,那么我们就需要过滤请求.Charles ...