[發(fā)明專利]一種基于Docker的項(xiàng)目構(gòu)建方法、設(shè)備及存儲(chǔ)介質(zhì)有效
| 申請(qǐng)?zhí)枺?/td> | 202110941173.3 | 申請(qǐng)日: | 2021-08-17 |
| 公開(kāi)(公告)號(hào): | CN113535334B | 公開(kāi)(公告)日: | 2023-09-05 |
| 發(fā)明(設(shè)計(jì))人: | 劉耘松 | 申請(qǐng)(專利權(quán))人: | 成都長(zhǎng)城開(kāi)發(fā)科技股份有限公司 |
| 主分類號(hào): | G06F9/455 | 分類號(hào): | G06F9/455;G06F8/61 |
| 代理公司: | 成都九鼎天元知識(shí)產(chǎn)權(quán)代理有限公司 51214 | 代理人: | 徐靜 |
| 地址: | 611731 四*** | 國(guó)省代碼: | 四川;51 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 docker 項(xiàng)目 構(gòu)建 方法 設(shè)備 存儲(chǔ) 介質(zhì) | ||
本發(fā)明公開(kāi)了一種基于Docker的項(xiàng)目構(gòu)建方法、設(shè)備及存儲(chǔ)介質(zhì),其中項(xiàng)目構(gòu)建方法包括:收到項(xiàng)目構(gòu)建請(qǐng)求后,確定是否需要進(jìn)行項(xiàng)目構(gòu)建;在編譯完項(xiàng)目代碼后,分離項(xiàng)目本身的目標(biāo)文件部分和第三方依賴部分;確定是否需要進(jìn)行依賴鏡像的構(gòu)建;將依賴鏡像和項(xiàng)目目標(biāo)文件構(gòu)建為目標(biāo)鏡像。與每次都要進(jìn)行完整編譯過(guò)程并將整個(gè)項(xiàng)目構(gòu)建為鏡像相比,本發(fā)明會(huì)判斷項(xiàng)目是否已經(jīng)構(gòu)建過(guò),并且每次構(gòu)建實(shí)際只會(huì)新增一個(gè)項(xiàng)目的目標(biāo)文件層,降低了對(duì)計(jì)算資源的占用,降低了多級(jí)構(gòu)建后所占用的存儲(chǔ)空間,也降低了多次分發(fā)時(shí)占用的帶寬。
技術(shù)領(lǐng)域
本發(fā)明涉及電數(shù)字?jǐn)?shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種基于Docker的項(xiàng)目構(gòu)建方法、設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù)
通常情況下一個(gè)軟件項(xiàng)目完成編譯后會(huì)生成兩類文件,項(xiàng)目的第三方依賴文件和項(xiàng)目目標(biāo)文件。項(xiàng)目目標(biāo)文件的大小是遠(yuǎn)遠(yuǎn)小于第三方依賴文件,50倍至100倍甚至更多。
數(shù)字摘要是將任意長(zhǎng)度的消息變成固定長(zhǎng)度的密文,不同的明文摘要成密文,其結(jié)果總是不同的,而同樣的明文其摘要必定一致。
Docker是一種容器技術(shù),旨在將一個(gè)應(yīng)用的所需要的所有依賴打包成一個(gè)鏡像,鏡像本身即為一個(gè)輕量級(jí)的虛擬機(jī),可以運(yùn)行在任何擁有Docker運(yùn)行環(huán)境的Linux服務(wù)器上,使得開(kāi)發(fā)運(yùn)維人員不用再關(guān)系項(xiàng)目部署時(shí)的環(huán)境依賴與可能產(chǎn)生的沖突。
Docker鏡像采用的是分層構(gòu)建的方式,構(gòu)建時(shí)先選定一個(gè)基礎(chǔ)鏡像(基礎(chǔ)鏡像本身也是存在多層的),然后創(chuàng)建一個(gè)新的層,將所要添加的文件放在這個(gè)新的層中,若需要修改基礎(chǔ)鏡像中的文件則會(huì)將該文件復(fù)制到新層進(jìn)行修改,之后新層與基礎(chǔ)鏡像形成一個(gè)新的鏡像。若多個(gè)鏡像共同使用了同一個(gè)基礎(chǔ)鏡像,那么在同一個(gè)文件系統(tǒng)當(dāng)中基礎(chǔ)鏡像部分只會(huì)存在一個(gè),再加上若干個(gè)新層。若鏡像結(jié)構(gòu)為a+b1,a+b2,a+b3…a+bn,實(shí)際文件系統(tǒng)里面存儲(chǔ)的為a+b1+b2+b3…+bn。
當(dāng)前常見(jiàn)的兩種項(xiàng)目構(gòu)建方案:
1.不管依賴和項(xiàng)目目標(biāo)文件的分層,將依賴和項(xiàng)目目標(biāo)文件直接作為一層進(jìn)行構(gòu)建,該方案的優(yōu)點(diǎn)為使用簡(jiǎn)單,但是極其浪費(fèi)存儲(chǔ)空間,分發(fā)鏡像是也會(huì)耗費(fèi)更多的帶寬。
2.在變更依賴的同時(shí)手動(dòng)構(gòu)建依賴鏡像,再用依賴鏡像構(gòu)建目標(biāo)鏡像,該方案的優(yōu)點(diǎn)為一定程度上實(shí)現(xiàn)了多次構(gòu)建時(shí)的依賴層復(fù)用,節(jié)省了存儲(chǔ)空間,但是增加了人工步驟存在出錯(cuò)風(fēng)險(xiǎn),并且若多個(gè)項(xiàng)目用了一樣的依賴,多個(gè)項(xiàng)目又有不同人負(fù)責(zé)則又會(huì)構(gòu)建出兩個(gè)內(nèi)容一致的依賴鏡像。
發(fā)明內(nèi)容
為了解決上述問(wèn)題,本發(fā)明提出一種基于Docker的項(xiàng)目構(gòu)建方法、設(shè)備及存儲(chǔ)介質(zhì),可同時(shí)實(shí)現(xiàn)使用簡(jiǎn)單與節(jié)省存儲(chǔ)空間使用,減少分發(fā)時(shí)使用帶寬并且降低構(gòu)建時(shí)使用的計(jì)算資源。
本發(fā)明采用的技術(shù)方案如下:
一種基于Docker的項(xiàng)目構(gòu)建方法,包括:
收到項(xiàng)目構(gòu)建請(qǐng)求后,確定是否需要進(jìn)行項(xiàng)目構(gòu)建;
在編譯完項(xiàng)目代碼后,分離項(xiàng)目本身的目標(biāo)文件部分和第三方依賴部分;
確定是否需要進(jìn)行依賴鏡像的構(gòu)建;
將依賴鏡像和項(xiàng)目目標(biāo)文件構(gòu)建為目標(biāo)鏡像。
進(jìn)一步的,確定是否需要進(jìn)行項(xiàng)目構(gòu)建,包括:
根據(jù)項(xiàng)目代碼的文件標(biāo)識(shí)來(lái)判斷項(xiàng)目是否已經(jīng)構(gòu)建;
如果已經(jīng)構(gòu)建過(guò)需要直接返回該文件標(biāo)識(shí)對(duì)應(yīng)的鏡像號(hào)。
進(jìn)一步的,確定是否需要進(jìn)行依賴鏡像的構(gòu)建,包括:
將所有第三方依賴按照文件名進(jìn)行升序排序;
將所有第三方依賴的內(nèi)容計(jì)算為一個(gè)數(shù)字摘要;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于成都長(zhǎng)城開(kāi)發(fā)科技股份有限公司,未經(jīng)成都長(zhǎng)城開(kāi)發(fā)科技股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110941173.3/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 一種項(xiàng)目信息處理方法及系統(tǒng)
- 軟件項(xiàng)目管理方法、終端及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 一種基于微信公眾號(hào)的線上項(xiàng)目申請(qǐng)審批的方法及系統(tǒng)
- 一種項(xiàng)目管理系統(tǒng)及方法
- 一種建筑項(xiàng)目綜合管理系統(tǒng)
- 一種項(xiàng)目管理方法、裝置及設(shè)備
- 項(xiàng)目管理方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 項(xiàng)目管理系統(tǒng)、方法、計(jì)算機(jī)設(shè)備和計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 一種電力項(xiàng)目業(yè)務(wù)中臺(tái)及其微服務(wù)系統(tǒng)
- 一種基于標(biāo)簽確定項(xiàng)目成員的方法、裝置以及存儲(chǔ)介質(zhì)
- 構(gòu)建墊、實(shí)體圖像構(gòu)建物和構(gòu)建構(gòu)建物支撐件的方法
- 支持松耦合的軟件構(gòu)建方法、系統(tǒng)及該系統(tǒng)的實(shí)現(xiàn)方法
- 版本的構(gòu)建系統(tǒng)及方法
- 工程構(gòu)建系統(tǒng)及其構(gòu)建方法
- 實(shí)例構(gòu)建方法、裝置及軟件系統(tǒng)
- 軟件構(gòu)建方法、軟件構(gòu)建裝置和軟件構(gòu)建系統(tǒng)
- 天花板地圖構(gòu)建方法、構(gòu)建裝置以及構(gòu)建程序
- 一種項(xiàng)目構(gòu)建方法、持續(xù)集成系統(tǒng)及終端設(shè)備
- 并行構(gòu)建的方法、裝置及設(shè)備
- 構(gòu)建肺癌預(yù)測(cè)模型構(gòu)建方法





