BuildKit: Islendik zady diýen ýaly gurup bilýän dokeriň gizlin daşlary
Teswirler
Mewayz Team
Editorial Team
BuildKit: Islendik zady diýen ýaly gurup bilýän dokeriň gizlin daşlary
Döredijileriň köpüsi Dockeri programma üpjünçiliginiň iberilişini üýtgeden konteýner iş wagty hökmünde bilýärler. Häzirki zaman Docker gurluşynyň - 18.09 wersiýasyndan bäri Docker bilen iberilýän we Docker 23.0-iň esasy arkasyna öwrülen indiki nesil gurluşyk ulgamy bolan BuildKit-iň hereketlendirijisi barada ýuwaşlyk bilen gürleýän motory barada has az bilýänler bar. Inersenerler Kubernetes konfigurasiýalary we mikroservis nagyşlary barada tükeniksiz jedel etseler-de, BuildKit DevOps ekosistemasynyň iň güýçli, çeýe gurluş ulgamlarynyň birine yzygiderli ösýär. Eger has çalt doker gurmak ýaly çemeleşýän bolsaňyz, stoluň üstünde ägirt uly mümkinçilikleri goýýarsyňyz. Throughokary geçirijilikli CI / CD turbageçirijilerini işleýän kompaniýalar, diňe BuildKit-iň hödürleýän zadyna düşünmek bilen gurluşyk wagtyny 50-70% azaltdy - bu başlangyç.
BuildKit-i nusgawy gurluşykçydan düýpgöter tapawutlandyrýan zat
Asyl Docker gurmak dwigateli, Dockerfile görkezmelerini yzygiderli ýerine ýetirýärdi, paralel haýsy işiň howpsuz bolup biljekdigine düşünmeýär. “BuildKit” şol çyzykly ýerine ýetiriş modelini gönükdirilen asik grafik (DAG) bilen çalyşýar - haýsy ädimleriň biri-birine baglydygyny we haýsysyna bagly däldigine düşünýän garaşlylyk grafigi. Garaşsyz etaplar bir wagtyň özünde ýerine ýetirilýär, ulanylmadyk basgançaklar tutuşlygyna geçýär we ähli gurluş dogry tertipde okamaly ädimleriň hökmany yzygiderliligine däl-de, isleýän zadyňyzyň deklaratiw beýanyna öwrülýär.
Bu binagärlik çalşygy tizligiň çäginden çykýan amaly netijelere eýe. Köp basgançakly Dockerfile bir basgançakda Go ikili düzüp, Node.js baglylyklaryny başga birinde göçürip alanda we üçünji ýerde önümçilik şekilini ýygnasa, BuildKit ilkinji iki basgançagy bir wagtda işledip biler. Öň güýçli CI ylgaýjysyna dört minut gerek bolan gurluşyk indi togsan sekundyň içinde tamamlanýar. Zolak, “Shopify” we beýleki köp sanly uly in engineeringenerçilik toparlary içerki gurallar retrospektiwlerinde şuňa meňzeş gazançlary dokumentleşdirdiler. DAG modeli, şeýle hem, BuildKit-iň ýokary takyk gurluşyk meta-maglumatyny döredip biljekdigini aňladýar - üpjünçilik zynjyrynyň howpsuzlygy üçin möhüm ähmiýete eýe bolan subutnamalar we programma üpjünçiligi fakturasy (SBOM) öndürmek ýaly aýratynlyklar üçin esas.
Keşiň nädogry işlemeginiň konseptual üýtgemegi hem bar. Nusgawy gurluşykçy, üýtgedilen görkezmeleriň aşagyndaky her gatlagy ýatyrdy. “BuildKit” her girişde mazmun heşlerini yzarlaýar, şonuň üçin “Dockerfile” -däki teswiriň üýtgemegi otuz minutlyk düzülişi görkezýän keş keşbini ýitirmeýär. Gurluş keşiňiz, in engineeringenerçilik toparyňyz üçin bäş minutlyk we kyrk minutlyk jogap aýlawynyň arasyndaky tapawut bolsa, bu takyklyk başda görünişinden has möhümdir.
Köp platforma gurýar: Bir buýruk, her arhitektura
BuildKit-iň --platform baýdagy we QEMU integrasiýasy bir wagtlar agyryly köp ulgamly utgaşdyrmak meselesini bir buýruga öwürýär. docker buildx build --platform linux / amd64, linux / arm64, linux / arm / v7. Bu mümkinçilik, pudagyň ARM - AWS Graviton3 ýagdaýyna geçmegi bilen möhüm ähmiýete eýe bolup, web hyzmaty we maglumatlary gaýtadan işlemek ýaly iş ýüklerinde 40% has gowy baha öndürijiligini üpjün edýär we Apple Silicon ARM-ny millionlarça inersener üçin başlangyç ösüş maşynyna öwürdi.
BuildKit-iň köp platformaly goldawy ýetişmänkä, dürli arhitektura üçin aýratyn gurluşyk turbalaryny saklamak hakyky çykdajy merkezidi. Toparlar ýa-da birnäçe “Dockerfiles” -i sakladylar, dürli arhitekturaly ylgawçylarda aýratyn CI turbageçirijilerini işleddiler ýa-da hemme ýere x86 suratlaryny iberdiler we ARM infrastrukturasy üçin öndürijilik jezasyny tölediler. “BuildKit” -iň kömegi bilen gurluşygyňyzy bir gezek kesgitleýärsiňiz we ulgam arhitektura aýratyn düzülişini aç-açan dolandyrmaga mümkinçilik berýärsiňiz. Çekişmegi talap edýän pos taslamalary, CGO baglylyklary bolan taslamalar, C giňeltmeleri bolan Python paketleri - BuildKit her maksatly platformanyň jikme-jikliklerine düşünmegiňizi talap etmezden emulýasiýa gatlagyny dolandyrýar.
Bu ýerde amaly iş bahasy ölçenilip bilner. AWS Graviton mysallarynda 200 konteýner işleýän topar, vCPU-sagadyna deň bolan x86 mysaly bilen deňeşdirilende, vCPU-sagatda 0.056 dollar bilen deňeşdirilende, her 100 vCPU-da ýylda 11,520 dollar tygşytlaýar - diňe arhitekturany saýlamakdan. Täzeden in engineeringenerçilik tagallasy bolmazdan, bu saýlawy elýeterli etmek, derrew özi töleýän infrastruktura optimizasiýasynyň görnüşidir.
Surat gatlaklaryna girmän gizlin dolandyryş
Iň baha berilmeýän BuildKit aýratynlyklaryndan biri, onuň syrlary API. Nusgawy “Docker” gurluşykçysynyň, şahsyýet şahadatnamalaryny şekil gatlagyna çenli gutarman, şahsyýet maglumatlaryny binada geçirmegiň arassa usuly ýokdy. Döredijiler bu ugurda köp basgançakly gurluşlar, ARG görkezmeleri we seresaply sargytlar bilen işlediler - ýöne API açaryny ýa-da şahsy SSH açaryny iberilen surata tötänleýin bişirmek töwekgelçiligi ýokary derejede galdy. Howpsuzlyk skanerleri, köpçülige bellige alnan konteýner şekillerinde gaty kodlanan şahsyýetnamalary yzygiderli tapýarlar we bu syzdyrmalaryň köpüsi gurluşyk wagtynda gizlin işlemäge degişlidir.
BuildKit-iň - gizlin baýdagy, zerur bolan we hiç haçan şekil gatlagyna degmeýän belli bir RUN görkezmesiniň dowamlylygy üçin bar bolan wagtlaýyn faýl ulgamy ýoly hökmünde duýgur gurşawy gurýar. RUN --mount = type = secret, id = npmrc cat / run / secrets / npmrc> ~ / .npmrc && npm install ýaly Dockerfile görkezmesi, soňky suratda ýa-da haýsydyr bir aralyk gatlakda görünmeýän şahsy npm şahsyýetnamalaryna gurluşyk işine giriş mümkinçiligini berýär. Şol bir nagyş, PyPI şahsyýetnamalary, Maven sazlamalary, hususy Git ammarlary üçin SSH düwmeleri we gurmak işiňiz talap edýän beýleki duýgur materiallar üçin işleýär.
Düzgünleşdirilen pudaklara - saglygy goraýyş platformalaryna, fintech önümlerine, HR programma üpjünçiligine degýän programma üpjünçiligini döredýän toparlar üçin "şahsyýetnamalar şekilde bolup biler" we "şahsyýetnamalar şekilde bolup bilmez" arasyndaky tapawut, howpsuzlyk barlagyny geçirmek we netijeleri düzetmek üçin üç hepde sarp etmegiň arasyndaky tapawut. Aýlyk haklary, kadrlar we hasap-faktura ýaly pudaklarda 138,000-den gowrak ulanyjy üçin iş alyp barýan Mewayz ýaly platformalar, bu müşderileriň duýgur maliýe we işgär maglumatlaryna bolan ynamyny saklamak üçin gurmak we ýerleşdiriş turbageçirijilerinde edil şonuň ýaly ygtybarly howpsuzlyk ýagdaýyna baglydyr.
Keş eksporty: CI turbageçirijilerini hakykatdanam çalt etmek
CI turbageçirijileri, gurluşyk öndürijiliginiň iň möhümi we Docker-iň deslapky gurluşyk tejribesiniň taryhy taýdan iň agyryly ýeri. Täze CI ylgaýjylary, adatça, boş keşlerden başlaýarlar, ýagny her turbageçirijiniň işleýşi hemme zady başdan-aýaga jemleýär. Enüzlerçe Maven garaşlylygy bolan Java hyzmaty üçin, “Rust” taslamasy ýa-da agyr ýerli giňeltmeler bilen “Python” programmasy, bu sekuntlary däl-de, onlarça minutda ölçelýän wagtlary aňladýar. Haýal CI-iň iş bahasy gaty uludyr - ýaýbaňlandyryş ýygylygynyň peselmegi, has uzak seslenme aýlawlary we birleşmezden we dowam etmezden ozal turbageçirijileriň gutarmagyna garaşýan inersenerler.
BuildKit-iň keş keş eksport aýratynlygy muny eksport edip bolýan keş keşpleri bilen çözýär. --cache-from type = registr, ref = myregistry / myapp: cache ulanmak bilen, BuildKit her gurluşykdan soň jikme-jik keş keşbini reýestre geçirýär we indiki başynda çekýär. Keş mazmuna gönükdirilen, şonuň üçin diňe hakyky üýtgedilen gatlaklar täzeden alynýar. GitHub Hereketlerinde, GitLab CI-de we CircleCI-de bu nagşy ulanýan toparlar, indiki işlerde turbageçirijileriň wagtyny on bäş minutdan üçe çenli kesýärler. GitHub-yň ösen Docker gurmak iş akymlary baradaky resminamalary, hut şu sebäpden bu nagşy maslahat berýär.
Iň çalt gurmak, hiç haçan gaýtadan işlemeli däl. BuildKit-iň gatlakly, mazmuna gönükdirilen keş keşi diňe bir gurluşy çaltlaşdyrmaýar - "gurmak" düşünjesini has akylly edýär, gaýtalanýan jemlemäni üýtgän zadyň artýan tapawudyna öwürýär.
Keş eksporty, şahamça esasly ösüş akymlary bilen arassa birleşýär. CI turbageçirijiňiz, şahanyň keşi ýok wagty şahanyň aýratyn keşinden esasy şahanyň keşine gaýdyp gelmek üçin sazlap bilersiňiz, ýagny täze ösüş şahalary esasy ösüş ugruňyzda toplanan ýyly keşden derrew peýdalanýar. Inersenerler, sowuk başlangyç jezasyna garaşmak däl-de, täze şahada eden ilkinji wadalaryndan çalt seslenme alýarlar.
💡 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 →BuildKit Frontends: Dockerfilesiň aňyrsynda bina
“BuildKit” -iň iň az bilinýän ukyby, “Dockerfiles” -iň diňe bir däl-de, mümkin bolan giriş formatydyr. “BuildKit” -iň kesgitli dilleri we formatlary gurmaga mümkinçilik berýän, arkaýyn arhitekturasy bar. Öň tarapy, gurluş faýlyňyzyň ýokarsyndaky # sintaksis = görkezmesi bilen kesgitlenýär, bu bolsa BuildKit-e belli bir frontend suratyny çekmegi we faýlyň galan bölegini derňemek we ýerine ýetirmek üçin ulanmagy buýurýar.
Bu arhitektura birnäçe özüne çekiji taslamalara mümkinçilik berdi. “Buildpacks” integrasiýasy “BuildKit” -e hiç hili Dockerfile bolmazdan programma çeşmesinden konteýner şekilleri gurmaga mümkinçilik berýär - dili kesgitleýär, degişli esasy suratlary saýlaýar we önümçilige taýyn konteýner awtomatiki ýygnaýar. HPC we ylmy hasaplaýyş jemgyýetleri, BuildKit-iň içerki LLB (Pes derejeli gurluş) wekilçiligini düzmek üçin düzülen domen aýratyn dillerdäki gurluşlary suratlandyrmak üçin ýörite frontalary ulandylar. docker / dockerfile: laboratoriýalar sintaksis frontend synaglary, her bir görkezme boýunça heredok goldawy, --network gözegçilik we durnukly Dockerfile sintaksisine girmezden ozal keş keşplerini güýçlendirýär.
Öz öň tarapyňyzy kesgitlemek ukyby, adaty bolmadyk gurluşyk talaplary bolan guramalaryň "hemme zady Dockerfile sintaksisine aýakgap" we "konteýnerleri düýbünden taşlamak" arasynda saýlamaly däldigini aňladýar. FPGA programma üpjünçiligi, oturdylan ulgam şekilleri ýa-da ýöriteleşdirilen ML modeli konteýnerleri döredýän topar, konteýnerleriň işleýän ýerlerinde ýerleşdirilen adaty OCI laýyk konteýner şekillerini öndürip, öz domenleri üçin manyly sözler bilen düşündirip biler. Bu giňeliş, giriş formatyna kesgitlenen ýaly seredýän gurluş ulgamlaryndan hakyky binagärlik artykmaçlygydyr.
Provenance we SBOM: SolarWinds dünýäsinden bina
Programma üpjünçiligi üpjünçilik zynjyrynyň howpsuzlygy, 2020-nji ýylda SolarWinds bozulandan we 2021-nji ýylda Log4Shell gowşaklygyndan soň teoretiki aladalardan başlap, ileri tutulýan derejä geçdi. ABŞ-nyň hökümetiniň kiberhowpsuzlyk baradaky 14028-nji buýrugy, 2021-nji ýylyň maý aýynda federal potratçylar üçin programma üpjünçiliginiň kanun taslamasyny hökmany etdi. BuildKit-iň subutnamasy we SBOM öndürmek aýratynlyklary bu kadalaşdyryjy we howpsuzlyk şertlerine göni jogap.
--provenance = true we --sbom = true baýdaklary bilen, BuildKit konteýner şekiline nämäniň girendigini - haýsy esasy suratlaryň ulanylandygyny, Dockerfile görkezmeleriniň ýerine ýetirilendigini, haýsy çeşme faýllarynyň bardygyny we daşarky baglylyklaryň alynýandygyny görkezýän kriptografiki gol çekilen tassyklamalary döredýär. Bu tassyklamalar SLSA (Programma üpjünçiligi artefaktlary üçin üpjünçilik zynjyry derejeleri) çarçuwasyna we içerki attestasiýa formatyna eýerýär, olary Sigstore's Cosign we OPA (Açyk syýasat agenti) ýaly syýasat hereketlendirijileri tarapyndan barlap bolýar.
Bu mümkinçilik berýän amaly iş prosesi şeýle görünýär:
- Öndüriji kody basýar; CI turbageçirijisi, synagdan geçirmäge ukyply BuildKit gurluşyny işledýär.
- BuildKit, ähli komponentleri we olaryň wersiýalaryny görkezýän gol çekilen SBOM döredýär.
- SBOM şekil görkezijisi bilen birlikde konteýner reýestrine neşir edildi.
- Kubernetes toparyndaky kabul ediş gözegçileri ýerleşdirmäge rugsat bermezden ozal barlanylýar.
- Gowşaklyk skanerleri, täze CVE açylanda täsir eden suratlary kesgitlemek üçin SBOM-dan soraýar.
Bu doly turbageçirijini durmuşa geçirýän toparlar, gowşaklyklaryň aýan edilmegine birnäçe gün däl-de birnäçe sagatda jogap berip bilerler, sebäbi her işleýän gapda her bir komponentiň takyk, maşyn okalýan kartasy bar. Müşderileriň iş prosesine çuňňur aýlyk goşýan Mewayz ýaly kärhanalar üçin - aýlyk haklaryny dolandyrmak, flot maglumatlaryny dolandyrmak, hasap-fakturalary gaýtadan işlemek - berk, eşidilýän üpjünçilik zynjyryny görkezmek ukyby diňe bir oňat däl-de, kärhana satuw gepleşikleri üçin hökmany şert bolup durýar.
Başlamak: Bellenen gurluşlardan ösen turba geçirijilerine
Soňky wersiýasy - Docker 23.0 ulanýan bolsaňyz, Docker gurşawyňyzda eýýäm işleýär we soňundan adaty ýagdaýda işlediň. Toparlaryň köpüsi üçin ilkinji amaly ädim, “kody” doker gurmak kiçi komandasy arkaly BuildKit-iň doly aýratynlygyny açýan Docker Buildx pluginini açmakdyr. docker buildx create --use işlemek, adaty sürüjiden has köp ukyply BuildKit gurluşykçysyny döredýär. Şol ýerden, ösen aýratynlyklaryň yzygiderli kabul edilmegi hemme zady birbada kabul etmäge synanyşmagyň ýerine many berýär.
Häzirki wagtda esasy doker gurmak çagyryşlaryny ýerine ýetirýän topar üçin amatly ýol, ilki bilen keş eksportyny goşmak ýaly görünýär - bu minimal konfigurasiýa üýtgemegi bilen derrew, ölçenip bolýan tizligi gowulandyrýar. Topar ARM infrastrukturasyny nyşana alanda köp platformaly gurluşlar gymmatly bolýar. Gizlin gurnama, şahsy paket registrleri ýa-da SSH düwmeleri gurluş kontekstinde peýda bolanda islendik wagt kabul edilmelidir. Ygtyýarnamalar ýa-da kärhananyň müşderileriniň talaplary üpjünçilik zynjyry resminamalaryny zerur edende, kepillendiriş tassyklamalarynyň manysy bar.
BuildKit-iň has çuňňur sapagy bilgeşleýin gurmakdyr. Mikroservis üçin bir konteýner iberýärsiňizmi, maşyn öwreniş nokady ýa-da Mewayz-yň 207 iş moduly ýaly çylşyrymly platforma, gurluşyk prosesi ýaýbaňlandyrmagyň ýoly däl-de, ondan çykýan zatlaryň hilini, howpsuzlygyny we amaly kämilligini görkezýän in engineeringenerçilik artefakty. “BuildKit” size bu artefaktyň ajaýyp bolmagy üçin gurallary berýär. Sorag, olary ulanmaga wagt sarp edýärsiňizmi?
Freygy-ýygydan soralýan soraglar
BuildKit näme we nusgawy Docker gurmak ulgamyndan nähili tapawutlanýar?
BuildKit, Docker 18.09-da hödürlenen we Docker 23.0-de deslapky görnüşde döredilen Dockeriň indiki nesil gurluşyk motorydyr. Nusgawy gurluşykçydan tapawutlylykda, BuildKit paralel gatlagyň ýerine ýetirilmegini, kämil keş keşplerini, syrlary gurmagy we platforma gurluşlaryny goldaýar. Gurluş prosesine gönükdirilen asik grafik (DAG) hökmünde seredýär, has ygtybarly garaşlylygy üpjün edýär we çylşyrymly, köp basgançakly Dockerfiles üçin has çalt gurmak wagtyny döredýär.
BuildKit-i Docker bilen ulanyp başlamak üçin goşmaça bir zat gurmalymy?
Docker 23.0 ýa-da has soň işleýän bolsaňyz, goşmaça gurnama talap edilmeýär - BuildKit deslapky görnüşde işledilýär. Has köne wersiýalarynda, gurmak buýruklaryňyzy işletmezden ozal daşky gurşaw üýtgeýjisini DOCKER_BUILDKIT = 1 düzmek arkaly işjeňleşdirip bilersiňiz. Uzakdan gurulýan keşler ýa-da köp platformaly gurluşlar ýaly has ösen ýagdaýlar üçin, docker buildx create .
BuildKit adaty konteýner şekillerinden daşgary artefaktlar gurmak üçin ulanylyp bilnermi?
Hawa, we bu BuildKit-iň iň baha berilmeýän mümkinçiliklerinden biridir. CustomKörite frontalary we --output baýdagyny ulanyp, BuildKit diňe OCI suratlary däl-de, çig binarlary, tarbollary, statiki web sahypalaryny we beýleki özbaşdak faýl artefaktlaryny öndürip biler. Bu, köpugurly monoreplere we çylşyrymly CI turbageçirijilerine tebigy laýyk gelýän umumy maksatly hereketlendiriji edýär, bu ýerde dürli toparlara bitewi gural zynjyryndan dürli çykyş formatlary gerek.
BuildKit, Mewayz ýaly gurallar bilen bir hatarda has giň DevOps platformasyna nädip laýyk gelýär?
BuildKit pes derejeli gurluş gatlagyny dolandyrýar, ýöne häzirki zaman ösüş toparlary hem iş akymlaryny, müşderileriň eltilmegini we amaly amallaryny dolandyrmalydyrlar. Mewayz ýaly platformalar - $ 19-dan başlaýan 207 modully iş ulgamy - programma üpjünçiliginiň işiniň tarapyny ýapmak bilen infrastruktura gurallaryny doldurýar. “BuildKit” bilen işleýän täsirli gurluşyk turbageçirijilerini Mewayz ýaly birmeňzeş platforma bilen jübütlemek toparlara kod artefaktyndan müşderi eltişine çenli doly maglumat berýär.
Try Mewayz Free
All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.
Get more articles like this
Weekly business tips and product updates. Free forever.
You're subscribed!
Start managing your business smarter today
Join 6,207+ businesses. Free forever plan · No credit card required.
Ready to put this into practice?
Join 6,207+ businesses using Mewayz. Free forever plan — no credit card required.
Start Free Trial →Related articles
Hacker News
Bipartisan Bill to Tighten Controls on Sensitive Chipmaking Equipment
Apr 19, 2026
Hacker News
NASA Shuts Off Instrument on Voyager 1 to Keep Spacecraft Operating
Apr 18, 2026
Hacker News
Zero-Copy GPU Inference from WebAssembly on Apple Silicon
Apr 18, 2026
Hacker News
Show HN: Sostactic – polynomial inequalities using sums-of-squares in Lean
Apr 18, 2026
Hacker News
What Is Llms.txt and Does Your Business Need One?
Apr 18, 2026
Hacker News
Dad brains: How fatherhood rewires the male mind
Apr 18, 2026
Ready to take action?
Start your free Mewayz trial today
All-in-one business platform. No credit card required.
Start Free →14-day free trial · No credit card · Cancel anytime