- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章如何通过Jenkins定期清理为None的镜像详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
前言 。
在代码持续交付过程中,依靠jenkins生产docker镜像时,会生成许多的名为none的中间镜像,这些镜像在整个项目生产过程完毕后意义不大,还占着空间,需要定期清理,通过手动方式实在是繁琐,也就有了定期清理.
jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成jenkins可以用于一些测试和部署技术。jenkins是一种软件允许持续集成.
下面话不多说了,来一起看看详细的介绍吧 。
1、手动方式清理 。
比较简便的清理方式,适合有单个none镜像产生时手动执行命令清理镜像,执行如下命令:
1
|
docker rmi $(docker images -f
"dangling=true"
-q)
|
由于我本地已经没有了none的镜像,因此执行就只能看到如下效果 。
2、项目生产结束后清理 。
在jenkins中建立一个满足ci的项目时,生产过程完毕结束后清理可以在构建执行脚本内设置,如:
其中的脚本为:
1
2
3
4
5
6
7
8
|
echo
---------------
clear
-images...------------------
clearimageslist=$(docker images -f
"dangling=true"
-q)
if
[ ! -n
"$clearimageslist"
];
then
echo
"no images need clean up."
else
docker rmi $(docker images -f
"dangling=true"
-q)
echo
"clear success."
fi
|
当项目构建完毕后,执行这个,将本身构建过程中生成的none镜像清楚,做到自己清除自己的中间产物.
但是有一个严重问题会产生,当两个或多个项目在同时构建时,先构建完毕后执行清除的脚本将会影响正在构建过程中的项目,删除正在构建过程中所产生的none,但是删除失败进而引发错误,导致先构建的项目构建失败,在多个项目的情况下不推荐这种方式,如果在jenkins中只有单个任务在跑,那没得问题.
3、定时任务清理 。
比较喜欢这种方式,新建一个jenkins定时任务,比如我设置为晚上十二点清理为none的镜像,步骤如下:
1、jenkins中新建一个项目,名字随意,如我的为clearimage.
2、构建触发器,选择poll scm,设置定时时间,如我设置的是凌晨时分清理,也可设置其他时间,具体设置规则参见右边问号.
3、执行构建脚本,脚本内容在之前已经给出,保存完毕即可, 。
手动执行立即构建,验证是否有效:
查看控制台输出:
输出完毕:构建有效.
。
总结 。
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我的支持.
原文链接:https://www.cnblogs.com/CKExp/p/9900539.html 。
最后此篇关于如何通过Jenkins定期清理为None的镜像详解的文章就讲到这里了,如果你想了解更多关于如何通过Jenkins定期清理为None的镜像详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
这个问题在这里已经有了答案: Why does the print function return None? (1 个回答) 关闭 6 年前。 我正在学习理解。我得到了 print(x) 部分(我
我以为我理解了 Python 中的这两个单例值,直到我看到有人在代码中使用 return l1 or l2,其中 l1 和 l2 都是链表对象,并且(s)他想如果不为 None 则返回 l1,否则返回
我希望在 IPython Notebook 中使用列表理解生成枚举字符串列表。它有效,但给了我一个我不理解的奇怪输出。 cols = [] [cols.append('Value'+str(hour)
这个问题在这里已经有了答案: Why does the expression 0 >> import dis >>> def a(): ... return None is None is N
《Learning Python 5th》第608页有示例代码: >>> list(print(x.upper(), end=' ') for x in 'spam') S P A M [None,
我对此进行了搜索并遇到了列表返回函数,但我仍然不明白。 我试图理解为什么 Print 函数到另一个函数返回以下内容: 生日快乐 生日快乐 无 无 我的代码: def happy(): prin
除非我疯了 if None not in x 和 if not None in x 是等价的。有首选版本吗?我想 None not in 更像英语,因此更像 pythonic,但 not None i
尝试绘制 k-NN 分类器的决策边界但无法这样做得到 TypeError: '(slice(None, None, None), 0)' is an invalid key h = .01 # st
我正在尝试将可变大小的序列输入 LSTM。因此我使用生成器且批量大小为 1。 我有一个嵌入的 (sequence_length,)-input-tensor,并输出 (batch_size,equen
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Is there any way to know if the value of an argument i
我正在尝试根据环境变量的返回值进行条件赋值。 self._TBLFilePath = iTBLFilePath or os.environ.get("CDO_TBLPATH") + os.enviro
我正在使用 marshmallow 2.0.0rc2 验证 HTTP 请求的输入数据,并在 HTTP 响应上将 SQLAlchemy 模型加载到 JSON。我偶然发现了两个问题: 首先,在通过 HTT
我想将我设置为 None 的变量与 is 进行比较,但它失败了。 当我使用 == 将此变量与 None 进行比较时,它起作用了。 这就是我所说的变量: print type(xml.a) -> 因为
我最近遇到了这种语法,我不知道有什么区别。 如果有人能告诉我其中的区别,我将不胜感激。 最佳答案 答案解释here . 引用: A class is free to implement compari
尝试使用 BorutaPy 进行特征选择。但出现 TypeError: '(slice(None, None, None), array([0, 1, 2, 3, 4]))' 是无效键。 from s
我见过使用 [] 的代码片段, [None] , None或 ()作为 placeholder 的形状, 那是 x = tf.placeholder(..., shape=[], ...) y = t
是否有逻辑推理可以解释为什么下面的 Ansible playbook 中的两个 debug 任务分别输出 "NONE" 和 "FALSE"并且不是两者都“NONE”? - hosts: 'all'
我有一个函数,它可以返回两个整数的元组或(None, None)的元组: (出于本问题的目的,我们假设此返回格式是执行此操作的唯一方法,并且无法更改) from typing import Tuple
问题: 如何遍历字典并从中删除 None 键或值? 这是我尝试过的: 代码: import copy def _ignore(data): copied_data = copy.deepcop
什么是简洁的 python 表达方式 if : # do a bunch of stuff once 最佳答案 为什么不简单, None not in lst 关于python - 简明地说 "
我是一名优秀的程序员,十分优秀!