如何通過Jenkins定期清理為None的鏡像詳解

發布時間: 2019-06-17 18:28:33 來源: 互聯網 欄目: 服務器 點擊:

這篇文章主要給大家介紹了關于如何通過Jenkins定期清理為None的鏡像的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言

在代碼持續交付過程中,依靠Jenkins生產Docker鏡像時,會生成許多的名為None的中間鏡像,這些鏡像在整個項目生產過程完畢后意義不大,還占著空間,需要定期清理,通過手動方式實在是繁瑣,也就有了定期清理。

Jenkins是一個功能強大的應用程序,允許持續集成和持續交付項目,無論用的是什么平臺。這是一個免費的源代碼,可以處理任何類型的構建或持續集成。集成Jenkins可以用于一些測試和部署技術。Jenkins是一種軟件允許持續集成。

下面話不多說了,來一起看看詳細的介紹吧

一、手動方式清理

比較簡便的清理方式,適合有單個none鏡像產生時手動執行命令清理鏡像,執行如下命令:

docker rmi $(docker images -f "dangling=true" -q)

由于我本地已經沒有了none的鏡像,因此執行就只能看到如下效果 

 

二、項目生產結束后清理

在Jenkins中建立一個滿足CI的項目時,生產過程完畢結束后清理可以在構建執行腳本內設置,如:

其中的腳本為:

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中只有單個任務在跑,那沒得問題。

三、定時任務清理

比較喜歡這種方式,新建一個Jenkins定時任務,比如我設置為晚上十二點清理為none的鏡像,步驟如下:

1、Jenkins中新建一個項目,名字隨意,如我的為ClearImage。

2、構建觸發器,選擇Poll SCM,設置定時時間,如我設置的是凌晨時分清理,也可設置其他時間,具體設置規則參見右邊問號。

  

3、執行構建腳本,腳本內容在之前已經給出,保存完畢即可,

  

手動執行立即構建,驗證是否有效:

查看控制臺輸出:

  

輸出完畢:構建有效。

 

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對我們的支持。

本文標題: 如何通過Jenkins定期清理為None的鏡像詳解
本文地址: http://www.leskzw.tw/jiqiao/fuwuqi/243587.html

如果認為本文對您有所幫助請贊助本站

支付寶掃一掃贊助微信掃一掃贊助

  • 支付寶掃一掃贊助
  • 微信掃一掃贊助
  • 支付寶先領紅包再贊助
    聲明:凡注明"本站原創"的所有文字圖片等資料,版權均屬編程客棧所有,歡迎轉載,但務請注明出處。
    Nginx 虛擬主機配置的三種方式(基于域名)如何將Tomcat設置為自動啟動的服務最快捷方法
    Top 广东好彩1中奖规则