I-BuildKit: IGem efihliweyo ye-Docker enokwakha phantse nantoni na
Amagqabantshintshi
Mewayz Team
Editorial Team
Yakha iKit: IGem efihlakeleyo yeDocker enokwakha phantse nantoni na
Uninzi lwabaphuhlisi bayayazi i-Docker njengexesha lesikhongozeli esitshintshe indlela isoftware ethunyelwa ngayo. Bambalwa kakhulu abaziyo malunga ne-injini ethule cwaka phantsi komphezulu we-Docker yonke yokwakha yangoku-i-BuildKit, inkqubo yokwakha yesizukulwana esilandelayo esele ithunyelwe nge-Docker ukusukela kwinguqulo ye-18.09 kwaye yaba yinto engasemva engasemva kwi-Docker 23.0. Ngelixa iinjineli zixoxa ngokungenasiphelo malunga noqwalaselo lwe-Kubernetes kunye neepateni ze-microservice, i-BuildKit ibisoloko iguquka yaba yeyona nkqubo inamandla, ebhetyebhetye yokwakha kwi-ecosystem ye-DevOps. Ukuba ubuyiphatha nje ngokukhawuleza docker build, ushiya amandla amakhulu etafileni. Iinkampani ezisebenzisa imibhobho ye-CI/CD ephezulu zicuthe amaxesha okwakha ngama-50–70% ngokulula nje ngokuqonda ukuba iBuildKit ibonelela ngantoni kanye - kwaye sisiqalo nje eso.
Yintoni eyenza i-BuildKit yahluke ngokusisiseko kwi-Classic Builder
Injini yoqobo yokwakha iDocker yenza imiyalelo yeDockerfile ngokulandelelanayo, umaleko omnye ngexesha, kungekho lwazi lokuba ngowuphi umsebenzi onokwenzeka ngokukhuselekileyo ngokunxuseneyo. I-BuildKit ithatha indawo yaloo modeli yophumezo ngegrafu eqondisiweyo ye-acyclic (DAG) - igrafu yokuxhomekeka eqonda ukuba ngawaphi amanyathelo okwakha axhomekeke omnye komnye kwaye angatsho. Izigaba ezizimeleyo ziphunyezwa ngaxeshanye, izigaba ezingasetyenziswanga ziyatsitywa ngokupheleleyo, kwaye isakhiwo siphela siba yinkcazo echazayo yento oyifunayo kunokuba lulandelelwano oluyimfuneko lwamanyathelo ekufuneka uwacengcelele ngolandelelwano oluchanekileyo.
Olu tshintsho lwezakhiwo luneziphumo ezisebenzayo ezihamba ngaphaya kwesantya. Xa i-Dockerfile yamanqanaba amaninzi iqulunqa i-Go binary kwinqanaba elinye, ikhuphela ukuxhomekeka kwe-Node.js kwelinye, kwaye ihlanganise umfanekiso wemveliso kwisithathu, i-BuildKit inokuqhuba izigaba ezimbini zokuqala ngaxeshanye. Ulwakhiwo olwaluthathe imizuzu emine ngaphambili kwimbaleki yeCI enamandla ngoku igqiba ngaphantsi kwemizuzwana engamashumi alithoba. I-Stripe, Shopify, kunye namanqaku amanye amaqela eenjineli aphezulu abhale iinzuzo ezifanayo kwiindlela zabo zangaphakathi zokujonga izixhobo. Imodeli ye-DAG ikwathetha ukuba i-BuildKit inokuvelisa imetadata yokwakha echanekileyo kakhulu - isiseko seempawu ezifana nobungqina beprovenance kunye ne-software bill of materials (SBOM) ukuveliswa okubaluleke kakhulu kukhuseleko lwesixokelelwano sobonelelo.
Kukho kwakhona ingqiqo yotshintsho kwindlela ukungasebenzi kwe-cache kusebenza ngayo. Umakhi weklasikhi wenze ukuba umaleko ngamnye ungasebenzi ngaphantsi kwawo nawuphi na umyalelo otshintshileyo. I-BuildKit ilandelela i-hashes yomxholo kwigalelo ngalinye, ngoko ke ukutshintsha inkcazo kwi-Dockerfile akuvutheli i-cache yokungena emele imizuzu engamashumi amathathu yokuhlanganiswa. Xa i-cache yakho yokwakha ingumahluko phakathi kwemizuzu emihlanu kunye nemizuzu engamashumi amane yempendulo yelophu yeqela lakho lobunjineli, oku kuchanekileyo kubaluleke kakhulu kunokuba kunokubonakala ekuqaleni.
Ulwakhiwo lwe-Multi-Platform: Umyalelo omnye, lonke i-Architecture
I-BuildKit's
Phambi kokuba i-BuildKit yenkxaso yamaqonga amaninzi ikhule, ukugcinwa kwemibhobho yokwakha eyahlukileyo yolwakhiwo olwahlukileyo yayiliziko lexabiso lokwenyani. Amaqela mhlawumbi agcine iiDockerfiles ezininzi, aqhube imibhobho yeCI eyahlukeneyo kwiimbaleki ezakhiwe ngokwahlukileyo, okanye ngokulula athumela imifanekiso ye-x86 kuyo yonke indawo kwaye ahlawule isohlwayo sokusebenza kwiziseko zophuhliso ze-ARM. Nge-BuildKit, uchaza ulwakhiwo lwakho kube kanye kwaye uvumele inkqubo iphathe ukudityaniswa kolwakhiwo oluthile ngokuphandle. Iiprojekthi ze-Rust ezifuna ukuhlanganiswa okunqamlezayo, Iiprojekthi ze-Hamba ezinokuxhomekeka kwe-CGO, iipakethe zePython ezinezandiso ze-C - i-BuildKit iphatha umaleko wokulinganisa ngaphandle kokufuna ukuba uqonde iinkcukacha zeqonga ngalinye ekujoliswe kulo.
Ixabiso leshishini elisebenzayo apha liyalinganiseka. Iqela eliqhuba izikhongozeli ezingama-200 kwimizekelo ye-AWS Graviton nge-$0.04 ngeyure nganye ye-vCPU xa kuthelekiswa nomzekelo olinganayo we-x86 nge-$0.056 ngeyure ye-vCPU yonga malunga ne-$11,520 ngonyaka nge-100 vCPUs — ngokusulungekileyo ekukhetheni ulwakhiwo olufanelekileyo. Ukwenza olo khetho lufikeleleke ngaphandle kokwenza ubunjineli ngokutsha luhlobo kanye lwendlela yokuphucula iziseko ezingundoqo ozihlawulelayo ngoko nangoko.
Ulawulo oluyiMfihlo Ngaphandle kokuvuza kuMaleko oMfanekiso h2>
Enye yezinto ezingaxatyiswanga kakhulu zeBuildKit ziimfihlo zayo ze-API. Umakhi we-Docker wakudala wayengenayo indlela ecocekileyo yokugqithisela iziqinisekiso kwisakhiwo ngaphandle kwezo ziqinisekiso ezinokuphela kumaleko womfanekiso. Abaphuhlisi basebenze malunga noku kunye nokwakhiwa kwamanqanaba amaninzi,
Ikhowudi ye-BuildKit's RUN --mount=type=secret,id=npmrc cat /run/secrets/npmrc > ~/.npmrc && npm ufake inika inkqubo yokwakha ufikelelo kwiinkcazi zenpm zabucala ngaphandle kwezo ziqinisekiso ezike zivele kumfanekiso wokugqibela okanye nawuphi na umaleko ophakathi. Kwale patheni inye isebenza kwiinkcazi zePyPI, iisetingi zeMaven, izitshixo ze-SSH zogcino lweGit yabucala, kunye nazo naziphi na ezinye izinto ezibuthathaka kwinkqubo yakho yokwakha eyifunayo.
Kumaqela okwakha isoftware echaphazela amashishini alawulwayo - amaqonga okhathalelo lwempilo, iimveliso zefintech, isoftware ye-HR - umahluko phakathi "kweziqinisekiso zinokuba kumfanekiso" kunye "neziqinisekiso ezinokuthi zingabikho emfanekisweni" ngumahluko phakathi kokupasa uphicotho lokhuseleko kunye nokuchitha iiveki ezintathu ukulungisa iziphumo. Amaqonga afana ne-Mewayz, asebenza ngamandla kwishishini kubasebenzisi abangaphezu kwe-138,000 kuwo wonke amashishini afana nokuhlawula, i-HR, kunye ne-invoyisi, ixhomekeke kanye kolu hlobo lokuma kokhuseleko olubonakalayo kulwakhiwo kunye nemibhobho yokusasaza ukugcina intembeko abo bathengi badlulisela kwidatha yabo ebuthathaka yemali kunye nabasebenzi.
I-Cache Exports: Ukwenza Imibhobho yeCI Ngokwenene Ngokukhawuleza h2>
Imibhobho yeCI kulapho umsebenzi wokwakha ubaluleke kakhulu kwaye apho amava okwakha iDocker engagqibekanga ngokwembali ibibuhlungu kakhulu. Iimbaleki ezintsha zeCI zihlala ziqala ngeecache ezingenanto, okuthetha ukuba yonke imibhobho eqhutywayo iphinda ibuyise yonke into ukusuka ekuqaleni. Kwinkonzo yeJava enamakhulu okuxhomekeka kweMaven, iprojekthi yeRust, okanye isicelo sePython esinolwandiso olunzima lwemveli, oku kuthetha ukuba amaxesha okwakha alinganiselwa kumashumi emizuzu kunemizuzwana. Ixabiso leshishini le-CI ecothayo likhulu kakhulu - lincitshisiwe ixesha lokusasazwa, iilophu zengxelo ezinde, kunye neenjineli ezihleli zingenzi nto zilinde imibhobho ukuba igqitywe phambi kokuba idibane kwaye iqhubele phambili.
Inqaku le-BuildKit lokuthumela ngaphandle liyisombulula le nto ngomboniso othunyelelwayo we-cache. Usebenzisa --cache-to type=registry,ref=myregistry/myapp:cache kunye --cache-from type=registry,ref=myregistry/myapp:cache, i-BuildKit ityhala i-snapshot ye-cache eneenkcukacha kwirejista emva kolwakhiwo ngalunye kunye nokutsalwa kwayo. I-cache ine-addressed content, ngoko ke kuphela iileya ezitshintshiweyo ngokwenene eziphinda zilandwe. Amaqela asebenzisa le pateni kwi-GitHub Actions, GitLab CI, kunye ne-CircleCI aqhele ukusika amaxesha emibhobho ukusuka kwimizuzu elishumi elinesihlanu ukuya ngaphantsi kwesithathu kwimitsi elandelayo. Uxwebhu lweGitHub olukwinqanaba eliphambili le-Docker yokwakha i-workflows icebisa kakhulu le pateni ngenxa yesi sizathu kanye.
Esona sakhiwo sikhawulezayo seso akusayi kufuneka uphinde usebenze.I-BuildKit's layered, i-content-addressed cache system ayikhawulezisi nje ukwakha - yenza yonke ingqikelelo ye "build" ibe krelekrele, ijike ukudityaniswa okuphindaphindiweyo kwidiff eyongeziweyo yento etshintshileyo kanye.
Ukuthunyelwa ngaphandle kwe-Cache kuphinda kudityaniswe ngokucocekileyo kunye nokuhamba komsebenzi okusekwe kwisebe. Ungaqwalasela umbhobho wakho weCI ukuba uwe ngasemva ukusuka kwindawo efihlakeleyo yesebe ukuya kwindawo egcina indawo yesebe engundoqo xa kungekho cache yesebe ikhona, oku kuthetha ukuba amasebe amatsha axhamla ngoko nangoko kwi-cache efudumeleyo eqokelelwe ngumgca wakho wophuhliso. Iinjineli zifumana impendulo ekhawulezayo kwizibophelelo zabo zokuqala kwisebe elitsha kunokulinda isohlwayo sokuqala esibandayo.
💡 DID YOU KNOW?
Mewayz replaces 8+ business tools in one platform
CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.
Start Free →Ii-BuildKit Frontends: Isakhiwo esiNgaphaya kweeDockerfiles
Mhlawumbi elona khono laziwayo le-BuildKit kukuba i-Dockerfiles yifomati enye yongeniso enokwenzeka - hayi ekuphela kwayo. I-BuildKit ine-architecture ye-pluggable frontend evumela ngokupheleleyo inkcazo yokwakhiwa kweelwimi kunye neefomathi. Isiphelo sangaphambili sicaciswe ngumyalelo
Olu lwakhiwo luvumele iiprojekthi ezininzi ezinyanzelisayo. Ukudityaniswa kwe-Buildpacks kuvumela i-BuildKit ukuba yakhe imifanekiso yesikhongozeli kwikhowudi yomthombo wesicelo ngaphandle kwe-Dockerfile konke konke-ibona ulwimi, ikhethe imifanekiso esisiseko efanelekileyo, kwaye ihlanganise isikhongozeli esilungele imveliso ngokuzenzekelayo. I-HPC kunye noluntu lwekhompuyutha yezenzululwazi lusebenzise iindawo ezingaphambili zesithethe ukuchaza ulwakhiwo kwiilwimi ezithe ngqo ezidibanisa i-BuildKit's LLB yangaphakathi (i-Low-Level Build) yokumelwa. I-docker/dockerfile:labs imifuniselo yangaphambili yesivakalisi eneempawu ezifana nenkxaso ye-heredoc,
Ukukwazi ukuchaza umphambili wakho kukwathetha ukuba imibutho eneemfuno ezingaqhelekanga zokwakha akufuneki ikhethe phakathi kwe "shoehorn yonke into kwiDockerfile syntax" kunye "nokulahla izikhongozeli ngokupheleleyo." Iqela lokwakha i-firmware ye-FPGA, imifanekiso yeenkqubo ezifakelweyo, okanye izikhongozeli zemodeli ye-ML ezikhethekileyo zinokuchaza ukwakhiwa kwazo ngokwemigaqo enentsingiselo kwisizinda sabo ngelixa zivelisa imifanekiso yesikhongozeli ethobelayo ye-OCI ehambisa naphi na izikhongozeli eziqhubayo. Olu lwandiso luluncedo lokwenyani lolwakhiwo ngaphezu kweenkqubo zokwakha eziphatha ifomathi yegalelo lazo njengelungisiweyo.
Imveliso kunye ne-SBOM: Ukwakha i-Post-SolarWinds World
Ukhuseleko lwesixokelelwano sonikezelo lweSoftware lususiwe kwinkxalabo yethiyori ukuya kwindawo ephambili yebhodi emva kolwaphulo-mthetho lweSolarWinds ngo-2020 kunye nokuba sesichengeni kwe-Log4Shell ngo-2021. Umyalelo weSigqeba sikarhulumente wase-US 14028 kukhuseleko lwe-cybersecurity, owakhutshwa ngoMeyi ka-2021, wagunyazisa umthetho oyilwayo wesoftware wezinto kwiikontraka zomdibaniso. Ubungqina bokuvela kwe-BuildKit kunye neempawu zokuvelisa i-SBOM yimpendulo ethe ngqo kulo mthetho kunye nokhuseleko lomhlaba.
Nge --provenance=true kunye --sbom=true iiflegi, i-BuildKit yenza ubungqina obusayinwe ngokufihlakeleyo obuchaza kanye oko kungene kumfanekiso wesikhongozeli - yeyiphi imifanekiso esisiseko esetyenzisiweyo, imiyalelo ye-Dockerfile ephunyeziweyo, zeziphi iifayile zomthombo ezazikho, kwaye zeziphi izixhomekeke zangaphandle eziye zalandwa. Obu bungqina bulandela i-SLSA (Amanqanaba oBonelelo lwe-Software Artifacts) kunye nefomathi yobungqina be-in-toto, ibenza ukuba bangqinwe ngoomatshini ziinjini zomgaqo-nkqubo ezifana ne-Sigstore's Cosign kunye ne-OPA (I-Agent yoMgaqo-nkqubo oVulekileyo).
Uqukuqelo olusebenzayo oluvumela ukuba lujongeke ngolu hlobo:
- Umphuhlisi utyhala ikhowudi; Umbhobho we-CI uxhokonxa ulwakhiwo lwe-BuildKit oluvunyiweyo.
- I-BuildKit yenza i-SBOM esayiniweyo edwelisa onke amacandelo kunye neenguqulelo zawo.
- I-SBOM ipapashiwe kwindawo yobhaliso ecaleni komfanekiso.
- Abalawuli bokwamkelwa kwi-cluster ye-Kubernetes baqinisekisa ubungqina phambi kokuvumela ukusasazwa.
- Iiskena zobungozi zibuza i-SBOM ukuba ibone imifanekiso echaphazelekayo xa kubhengezwa ii-CVE ezintsha. ol>
Amaqela aphumeza lo mbhobho ugcweleyo angasabela kubhengezo lobuthathaka kwiiyure kuneentsuku, kuba anemephu echanekileyo, efundeka ngomatshini yecandelo ngalinye kwisikhongozeli esisebenzayo. Kumashishini afana ne-Mewayz adibanisa nzulu kwiinkqubo zokusebenza zabathengi - ukuqhuba intlawulo, ukulawula idatha yezithuthi, ii-invoyisi zokucubungula - ukukwazi ukubonisa ubuninzi obuqinileyo, ikhonkco lobonelelo oluphicothwayo luya luyimfuneko kwiingxoxo zentengiso yeshishini, hayi nje ukuba nobumnandi.
Ukuqalisa: Ukusuka kwiNdawo eMiselweyo ukuya kwiMibhobho ePhezulu
I-BuildKit sele isebenza kwindawo yakho ye-Docker ukuba usebenzisa uguqulelo lwamva nje — i-Docker 23.0 kwaye kamva uyivule ngokungagqibekanga. Isinyathelo sokuqala esisebenzayo samaqela amaninzi sivumela i-plugin ye-Docker Buildx, eveza i-BuildKit i-fitsha epheleleyo esetyenzisiweyo nge-docker buildx subcommand. Ukuqhuba
Indlela yokwamkelwa enengqiqo yeqela ngoku elenza isiseko
Isifundo esinzulu seBuildKit simalunga nokwakha ngabom. Nokuba uthumela isikhongozeli senkonzo encinci, isiphelo sokufunda komatshini, okanye iqonga elintsonkothileyo elifana ne-Mewayz's suite yeemodyuli zeshishini ezingama-207, inkqubo yokwakha ayisiyonto isesikweni ongxameleyo kuyo usendleleni yokuthunyelwa - yinto yobunjineli ebonisa umgangatho, ukumila kokhuseleko, kunye nokuvuthwa kokusebenza kuyo yonke into ekhoyo. I-BuildKit ikunika izixhobo zokwenza loo mveliso igqwesileyo. Umbuzo ngowokuba uthatha ixesha lokuzisebenzisa na.
Imibuzo Ebuzwa Rhoqo
Yintoni i-BuildKit kwaye yahluke njani kwindlela yokwakha ye-Docker yakudala?
I-BuildKit yinjini yokwakha ye-Docker yesizukulwana esilandelayo, eyaziswa kwi-Docker 18.09 kwaye yenza ukusilela kwi-Docker 23.0. Ngokungafaniyo nomakhi weklasikhi, i-BuildKit ixhasa ukuphunyezwa komaleko ohambelanayo, amaqhinga aphuculweyo e-caching, ukunyuswa kweemfihlo, kunye nokwakhiwa kweqonga. Iphatha inkqubo yokwakha njengegrafu ye-acyclic eqondisiweyo (DAG), eyenza ukusonjululwa kokuxhomekeka okukrelekrele kunye namaxesha okwakha akhawulezayo anzima, amanqanaba amaninzi eDockerfiles.
Ngaba kufuneka ndifake nantoni na eyongezelelweyo ukuze ndiqalise ukusebenzisa i-BuildKit nge-Docker?
Akukho kufakelo longezelelweyo olufunekayo ukuba usebenzisa i-Docker 23.0 okanye kamva — i-BuildKit yenziwe ngokuzenzekelayo. Kwiinguqulelo ezindala, unokuyivula ngokuseta ukuguquguquka kwemeko-bume DOCKER_BUILDKIT=1 phambi kokuba usebenzise imiyalelo yakho yokwakha. Kwimiba yosetyenziso oluphambili olunje ngecache yokwakha ekude okanye ulwakhiwo lweplatform eninzi, unokufuna ukumisela umzekelo womakhi we-Buildx ozinikeleyo usebenzisa docker buildx create.
Ngaba i-BuildKit ingasetyenziselwa ukwakha izinto zakudala ngaphaya kwemifanekiso yesikhongozeli esisemgangathweni?
Ewe, kwaye esi sesinye sesakhono esingaxatyiswa kakhulu seBuildKit. Isebenzisa imiphambili yesiko kunye ne --output iflegi, i-BuildKit inokuvelisa iibhinari ezikrwada, ii-tarballs, iiwebhusayithi ezimileyo, kunye nezinye ii-arbitract zefayile ezenziweyo - hayi nje imifanekiso ye-OCI. Oku kuyenza injini yokwakha yenjongo-jikelele ehambelana ngokwemvelo kwi-polyglot monorepos kunye nemibhobho yeCI enzima apho amaqela ahlukeneyo adinga iifomathi zemveliso ezahlukeneyo ukusuka kwikhonkco lesixhobo esidityanisiweyo.
Ingena njani i-BuildKit kwiqonga leDevOps elibanzi ecaleni kwezixhobo ezifana neMewayz?
I-BuildKit iphatha umaleko wokwakha okwinqanaba elisezantsi, kodwa amaqela ophuhliso anamhlanje nawo kufuneka alawule ukuhamba komsebenzi, ukuhanjiswa kwabathengi, kunye neenkqubo zokusebenza. Amaqonga afana Mewayz — i-OS yemodyuli engama-207 eqala kwi-$19/mo — incedisana nezixhobo zeziseko ezingundoqo ngokugubungela icala lokusebenza lamashishini esoftware. Ukunxulumanisa imibhobho yokwakha esebenzayo enikwa amandla yi-BuildKit eneqonga lezinto zonke njenge-Mewayz inika amaqela isitakhi esipheleleyo ukusuka kwikhowudi ye-artifact ukuya kunikezelo lwabathengi.
We use cookies to improve your experience and analyze site traffic. Cookie Policy