harbor仓库中镜像按tag清理,删除tag后需要清理gc才能释放空间

#!/bin/bash
set -e
HARBOR_URL=127.0.0.1
HARBOR_PASSWD=harbor123
OLD_VERSION_NUM= function get_repos_list(){
repos_list=$(curl -s -k -u admin:${HARBOR_PASSWD} http://${HARBOR_URL}/api/projects?page=1&page_size=50)
mkdir -p $PWD/reposList
echo "${repos_list}" | jq '.[]' | jq -r '.project_id' > $PWD/reposList/reposList.txt
}
function get_images_list(){
mkdir -p $PWD/imagesList
for repo in $(cat $PWD/reposList/reposList.txt);do
images_list=$(curl -s -k -u admin:${HARBOR_PASSWD} http://${HARBOR_URL}/api/repositories?project_id=${repo})
echo "${images_list}" | jq '.[]' | jq -r '.name' > $PWD/imagesList/${repo}.txt
done
}
function delete_images(){
#### get html
htmlinfo=$(curl -s -k -u admin:${HARBOR_PASSWD} http://${HARBOR_URL}/api/repositories/$1/tags)
#### images num
num=$(echo "${htmlinfo}" | jq "length - ${OLD_VERSION_NUM}")
if [[ "${num}" -le "" ]]; then
echo "$1 has no need of cleanup!!!"
return
fi
#### get images_tag
for index in $(seq ${num}); do
tag=$(echo "${htmlinfo}" | jq ".[${index}]" | jq -r '.name')
echo "images=$1 ************************** tag= ${tag}"
curl -s -k -u admin:${HARBOR_PASSWD} -X DELETE http://${HARBOR_URL}/api/repositories/$1/tags/${tag}
done
}
function clean_registry(){
image_name=$(docker ps | grep registry | grep photon | awk -F " " '{print $2}')
docker run -it --name gc --rm --volumes-from registry ${image_name} garbage-collect /etc/registry/config.yml
}
function entrance(){
get_repos_list
get_images_list
for repo in $(cat $PWD/reposList/reposList.txt);do
for images in $(cat $PWD/imagesList/${repo}.txt); do
delete_images ${images}
done
done
clean_registry
}
entrance

- 参考: https://blog.csdn.net/u014305062/article/details/92770753

最新文章

  1. HTML5笔记2——HTML5音/视频标签详解
  2. 关于如何调用苹果自带的地图APP
  3. [Shell]字符截取命令:cut, printf, awk, sed
  4. 我的Mac软件集
  5. ASP.NET 管道事件与HttpModule, HttpHandler简单理解 -摘自网络
  6. 《head first java 》读书笔记
  7. php:兄弟连之面向对象版图形计算器2
  8. 彻底搞明白find命令的-mtime参数的含义【转载】
  9. Javascript DOM 编程艺术———总结-1
  10. ArrayList、Vector、LinkedList、HashMap、HashTable的存储性能和特性
  11. 浅谈Quartz.Net 从无到有创建实例
  12. linux杂记
  13. ----regular expression in js----
  14. auth模块(登录验证)
  15. POJ 2155 Matrix 【二维树状数组】(二维单点查询经典题)
  16. oracle hint 使用
  17. 可访问范围 与 visual 或 abstract “修饰符”
  18. 20171024xlVBA批量获取PPT\WORD\PDF页数
  19. 基于鸢尾花数据的PCA降维处理
  20. 爬虫4:re库

热门文章

  1. es批量导入进一对多的数据
  2. idea 复制多条字符串
  3. stm32如何核对flash大小和sram大小
  4. 基于 C++ 的脚本语言 cpps 脚本
  5. [2019HDU多校第二场][HDU 6591][A. Another Chess Problem]
  6. selenium报错以及各解决方法
  7. 全选所有checkbox
  8. 使用sysbench对MySQL进行压力测试
  9. Spring Cloud Config(三):基于JDBC搭建配置中心
  10. XXE外部实体注入漏洞——PHP