這篇文章主要介紹了作用通過(guò)Jenkins定期清理為None的鏡像,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
磐石網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)自2013年起到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
一、手動(dòng)方式清理
比較簡(jiǎn)便的清理方式,適合有單個(gè)none鏡像產(chǎn)生時(shí)手動(dòng)執(zhí)行命令清理鏡像,執(zhí)行如下命令:
docker rmi $(docker images -f "dangling=true" -q)
由于我本地已經(jīng)沒(méi)有了none的鏡像,因此執(zhí)行就只能看到如下效果
二、項(xiàng)目生產(chǎn)結(jié)束后清理
在Jenkins中建立一個(gè)滿足CI的項(xiàng)目時(shí),生產(chǎn)過(guò)程完畢結(jié)束后清理可以在構(gòu)建執(zhí)行腳本內(nèi)設(shè)置,如:
其中的腳本為:
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
當(dāng)項(xiàng)目構(gòu)建完畢后,執(zhí)行這個(gè),將本身構(gòu)建過(guò)程中生成的None鏡像清楚,做到自己清除自己的中間產(chǎn)物。
但是有一個(gè)嚴(yán)重問(wèn)題會(huì)產(chǎn)生,當(dāng)兩個(gè)或多個(gè)項(xiàng)目在同時(shí)構(gòu)建時(shí),先構(gòu)建完畢后執(zhí)行清除的腳本將會(huì)影響正在構(gòu)建過(guò)程中的項(xiàng)目,刪除正在構(gòu)建過(guò)程中所產(chǎn)生的none,但是刪除失敗進(jìn)而引發(fā)錯(cuò)誤,導(dǎo)致先構(gòu)建的項(xiàng)目構(gòu)建失敗,在多個(gè)項(xiàng)目的情況下不推薦這種方式,如果在Jenkins中只有單個(gè)任務(wù)在跑,那沒(méi)得問(wèn)題。
三、定時(shí)任務(wù)清理
比較喜歡這種方式,新建一個(gè)Jenkins定時(shí)任務(wù),比如我設(shè)置為晚上十二點(diǎn)清理為none的鏡像,步驟如下:
1、Jenkins中新建一個(gè)項(xiàng)目,名字隨意,如我的為ClearImage。
2、構(gòu)建觸發(fā)器,選擇Poll SCM,設(shè)置定時(shí)時(shí)間,如我設(shè)置的是凌晨時(shí)分清理,也可設(shè)置其他時(shí)間,具體設(shè)置規(guī)則參見(jiàn)右邊問(wèn)號(hào)。
3、執(zhí)行構(gòu)建腳本,腳本內(nèi)容在之前已經(jīng)給出,保存完畢即可,
手動(dòng)執(zhí)行立即構(gòu)建,驗(yàn)證是否有效:
查看控制臺(tái)輸出:
輸出完畢:構(gòu)建有效。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“作用通過(guò)Jenkins定期清理為None的鏡像”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!