BuildKit: Gemiya Veşartî ya Docker ku Dikare Hema Her Tiştek Ava bike
Comments
Mewayz Team
Editorial Team
BuildKit: Gewra Veşartî ya Docker ku Dikare Hema Her Tiştek Ava bike
Piraniya pêşdebiran Docker-ê wekî dema xebitandina konteyneran nas dikin ku awayê şandina nermalavê guhert. Pir hindiktir di derbarê motora ku di binê her avahiyek nûjen a Docker-ê de bêdeng diqelişe - BuildKit, pergala avakirina nifşê din ku ji guhertoya 18.09-an vir ve bi Docker re tê şandin û di Docker 23.0 de bû paşnavê xwerû. Dema ku endezyar bêdawî li ser mîhengên Kubernetes û şêwazên mîkroxizmetê nîqaş dikin, BuildKit bi domdarî di ekosîstema DevOps de di yek ji pergalên avakirina herî hêzdar, maqûl de pêş dikeve. Ger we wê wekî avakirinek doker ya bileztir bihesibîne, hûn kapasîteya pir mezin li ser maseyê dihêlin. Pargîdaniyên ku xetên boriyên CI/CD-ê yên bi karûbarê bilind dimeşînin, bi têgihiştina ku BuildKit bi rastî çi pêşkêşî dike, demên çêkirinê %50-70 kêm kirine - û ew tenê destpêk e.
Tiştê ku BuildKit Bi Bingehîn Ji Avakera Klasîk Cûda Dike
Motora avakerê ya orîjînal a Docker rêwerzên Dockerfile bi dû hev, yek qat, yek carî, bêyî ku hay jê hebe ka çi kar bi ewlehî dikare bi hev re çêbibe, pêk anî. BuildKit wê modela darvekirina xêzkirî bi grafek asîklîk a rêvekirî (DAG) diguhezîne - grafikek girêdayîbûnê ya ku fam dike ka kîjan gavên avakirinê bi hev ve girêdayî ne û kîjan ne. Qonaxên serbixwe bi hev re têne darve kirin, qonaxên ku nehatine bikar anîn bi tevahî têne paşguh kirin, û tevahî avahî dibe ravekek daxuyandî ya tiştê ku hûn dixwazin ji bilî rêzek mecbûrî ya gavên ku hûn bi rêza rast bixwînin.
Ev guhertina mîmarî encamên pratîkî yên ku ji lezê wêdetir hene. Gava ku Dockerfile-yek pir-qonaxa di qonaxek de binaryek Go berhev dike, di qonaxek din de girêdayîbûna Node.js dakêşîne, û di qonaxa sêyemîn de wêneyek hilberandinê berhev dike, BuildKit dikare du qonaxên pêşîn bi hevdemî bimeşîne. Avakirinek ku berê çar hûrdeman li ser rêvebirek CI-ya hêzdar girtibû, naha di bin nod çirkeyan de temam dibe. Stripe, Shopify, û gelek tîmên din ên endezyariyê yên pilebilind di paşerojên amûrên xwe yên hundurîn de destkeftiyên wekhev belge kirine. Modela DAG di heman demê de tê vê wateyê ku BuildKit dikare metadaneyên çêkirinê yên pir rast biafirîne - bingehek ji bo taybetmendiyên mîna belgeyên verastkirinê û hilberîna fatûreya nermalava materyalê (SBOM) ku ji bo ewlehiya zincîra dabînkirinê pir girîng in.
Di heman demê de guherînek têgehî jî heye ku çawa betalkirina cache dixebite. Avakerê klasîk her qatek li binê her fermanek guhezbar betal kir. BuildKit di her têketinê de haşên naverokê dişopîne, ji ber vê yekê guheztina şîroveyek di Dockerfile de têketinek cache ya ku sîh hûrdeman berhevokê temsîl dike qut nake. Gava ku cache-ya weya çêkirinê ji bo tîmê weya endezyariyê ferqa di navbera pêleka vegerê ya pênc hûrdem û çil hûrdeman de ye, ev rastbûn ji ya ku di destpêkê de xuya dike pir girîngtir e.
Avakirinên Pir-Platform: Yek Ferman, Her Mîmar
Ala --platform BuildKit û entegrasyona QEMU ya ku berê pirsgirêkek hevrêziya pir-pergalê bi êş bû vediguherîne fermanek yekane. Damezrandina docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 . sê wêneyên amade-hilberînê bi paralelî ji yek bangek çêkirinê çêdike. Ji ber ku pîşesazî ber bi ARM ve diçe, ev şiyana krîtîk bûye - Mînakên AWS Graviton3 bi domdarî 40% biha-performansa çêtir li ser barkêşên xebatê yên wekî servîskirina malperê û hilberandina daneyê peyda dikin, û Apple Silicon ARM kiriye makîneya pêşkeftina xwerû ya bi mîlyonan endezyaran.
Berî ku piştgiriya pir-platformê ya BuildKit mezin bibe, domandina boriyên çêkirinê yên cihê ji bo mîmariyên cihê navendek lêçûnek rastîn bû. Tîm an gelek Dockerfiles diparêzin, boriyên CI-ê yên cihêreng li ser rêvebirên bi mîmarî yên cihêreng meşandin, an jî bi tenê wêneyên x86 li her derê şandin û cezayê performansê li ser binesaziya ARM dan. Bi BuildKit re, hûn avakirina xwe yek carî diyar dikin û dihêlin ku pergalê berhevkirina mîmarî-taybetî bi zelalî birêve bibe. Projeyên rust ên ku hewceyê berhevkirina xaçerê ne, projeyên Go bi girêdanên CGO, pakêtên Python bi dirêjkirina C - BuildKit qatê emûlasyonê digire bêyî ku hûn hewce bike ku hûn hûrguliyên her platforma armancê fam bikin.
Nirxa karsaziya pratîkî li vir tê pîvandin. Tîmek ku 200 konteyneran li ser mînakên AWS Graviton bi 0,04 $ ji her vCPU-saetê re li hember mînaka x86 ya wekhev bi 0,056 $ ji bo her demjimêrek vCPU-yê salane bi qasî 11,520 $ xilas dike ji bo 100 vCPU - bi tenê ji hilbijartina mîmariya rast. Bidestxistina wê bijartinê bêyî hewildanek ji nû ve endezyariyê bi rastî celebek xweşbîniya binesaziyê ye ku tavilê heqê xwe dide.
Birêvebiriya Veşartî Bê Derketina nav Qatên Wêne
Yek ji taybetmendiyên BuildKit-ê yên ku herî kêm têne pejirandin API-ya veşartî ya wê ye. Avakerê Docker-a klasîk rêyek paqij tune ku pêbaweriyan di avahîsaziyekê de derbas bike bêyî ku ew pêbawer bi potansiyel di qatek wêneyê de biqedin. Pêşdebiran li ser vê yekê bi avahiyên pir-qonaxa, rêwerzên ARG, û fermankirina bi baldarî xebitîn - lê xetereya ku bi xeletî mifteyek API an bişkojek SSH-ya taybet di nav wêneyek hatî şandin de nerehetî zêde bimîne. Skenerên ewlehiyê bi rêkûpêk di wêneyên konteyneran de ku li tomarên giştî hatine weşandin de pêbaweriyên kodkirî peyda dikin, û gelek ji wan derçûyan rasterast vedigerin destwerdana nehênî ya bêkêmasî di dema çêkirinê de.
Ala --secret ya BuildKit daneyên hesas dixe nav hawîrdora çêkirinê wekî rêgezek pergala pelan a demkî ya ku tenê ji bo dirêjahiya talîmata RUN ya taybetî ya ku jê re hewce dike heye û qet dest nade ti qatek wêneyê. Telîmatek Dockerfile mîna RUN --mount=type=secret,id=npmrc cat /run/secrets/npmrc > ~/.npmrc && npm sazkirin dide pêvajoya avakirinê ku bigihîje pêbaweriyên npm yên taybet bêyî ku ew pêbawer di wêneya paşîn an qatek navîn de xuya bibin. Heman nimûne ji bo pêbaweriyên PyPI, mîhengên Maven, bişkokên SSH ji bo depoyên Git-ê yên taybet, û her materyalek din a hesas ku pêvajoya avakirina we hewce dike dixebite.
Ji bo tîmên avakirina nermalava ku dest dide pîşesaziyên birêkûpêk - platformên lênihêrîna tenduristî, hilberên fintech, nermalava HR - ferqa di navbera "dibe ku pêbawerî di wêneyê de bin" û "belkî pêbawerî di wêneyê de nebin" ferqa di navbera derbaskirina kontrolek ewlehiyê û derbaskirina sê hefte ji bo sererastkirina dîtinan e. Platformên mîna Mewayz, yên ku ji bo zêdetirî 138,000 bikarhêneran li seranserê pîşesaziyên mîna mûçe, HR, û fatûra karûbarê karsaziyê hêzdar dike, bi tam bi vî rengî pozîsyona ewlehiyê ya îsbatkirî di xetên çêkirin û bicihkirina wan de ve girêdayî ye da ku pêbaweriya wan xerîdar bi daneyên darayî û personelên xwe yên hesas re bidomîne.
Hinardekirina Cache: Çêkirina CI Pipelines Bi Rastî Lez
Boriyên CI li cihê ku performansa çêkirinê pir girîng e û cihê ku ezmûna avakirina Docker-a xwerû di dîrokê de herî bi êş e. Rêvebirên CI-ya nû bi gelemperî bi kaşên vala dest pê dikin, tê vê wateyê ku her rêvekirina boriyê her tiştî ji nû ve berhev dike. Ji bo karûbarek Java ya bi sed girêdanên Maven, projeyek Rust, an serîlêdanek Python bi pêvekên xwemalî yên giran, ev tê vê wateyê ku demên çêkirinê ji bilî saniyeyan bi deh hûrdeman têne pîvandin. Mesrefa karsaziyê ya CI-ya hêdî pir mezin e - frekansa bicîhkirinê kêm bûye, lûleyên nerînên dirêjtir, û endezyarên bêkar rûdiniştin li benda qedandina boriyan berî ku karibin bibin yek û bi pêş ve biçin.
Taybetmendiya hinardekirina cache ya BuildKit vê yekê bi manîfestoyên cache-ya îxrackirî çareser dike. Bi karanîna --cache-to type=registry,ref=myregistry/myapp:cache û --cache-from type=registry,ref=myregistry/myapp:cache, BuildKit di destpêka her çêkirinê de wêneyek hûrgulî ya cache-ê dişoxilîne qeydek û di destpêka avakirina paşîn de. Cache-naverokê-navdêr e, ji ber vê yekê tenê qatên bi rastî hatine guheztin ji nû ve têne derxistin. Tîmên ku vê şêwazê di GitHub Actions, GitLab CI, û CircleCI de bikar tînin bi rêkûpêk demên boriyê ji panzdeh hûrdeman dadixin binê sê li ser rêveçûna paşîn. Belgeyên xwe yên GitHub-ê yên li ser karûbarên pêşkeftî yên avakirina Docker bi giranî ji ber vê sedemê vê nimûneyê pêşniyar dike.
Avakirina herî bilez ew e ku tu carek din nekaribî bixebitî. Pergala cache ya qat û naverok a BuildKit ne tenê avakirinan bileztir dike - ew tevahî têgeha "avakirin" aqilmendtir dike, berhevokek dubare vediguhere cûdahiyek zêde ya tiştê ku tam guheriye.
Hinardekirina cache jî bi rêkûpêkên pêşkeftinê yên şax-based re bi paqijî yek dibe. Hûn dikarin lûleya CI-ya xwe mîheng bikin da ku ji kaşek şax-taybetî vegere kaşeya şaxê sereke gava ku cache şax tune be, yanî şaxên nû tavilê ji cacheya germ a ku ji hêla xeta pêşkeftina weya sereke ve hatî berhev kirin sûd werdigirin. Endezyar ji peywira xwe ya yekem a li ser şaxek nû bertekên bilez digirin, li şûna ku li benda cezayê destpêka sar bin.
💡 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: Avakirina Beyond Dockerfiles
Dibe ku kapasîteya herî kêm-naskirî ya BuildKit ev e ku Dockerfiles tenê yek formatek têketina gengaz e - ne yekane. BuildKit xwedan mîmariyek pêşîn a pêvekirî ye ku destûrê dide ziman û formên pênasekirina çêkirina bi tevahî xwerû. Pêşî ji hêla rêwerza # syntax= li jora pelê avakirina we ve hatî destnîşan kirin, ku ji BuildKit re dibêje ku wêneyek pêşînek taybetî bikişîne û wê bikar bîne da ku pelê mayî parsek bike û bixebite.
Vê mîmarî gelek projeyên balkêş çalak kirine. Yekbûna Buildpacks destûrê dide BuildKit ku wêneyên konteynerê ji koda çavkaniya serîlêdanê bêyî tu Dockerfile ava bike - ew ziman tespît dike, wêneyên bingehîn ên guncan hildibijêre, û konteynirek amade-hilberînê bixweber dicivîne. HPC û civakên hesabkeriya zanistî pêşêyên xwerû bikar anîne da ku avahîsaziyên bi zimanên taybetî yên domainê ku bi nûnertiya LLB-ya hundurîn a BuildKit (Avan-Asta Nizm) ve têne berhev kirin, rave bikin. docker/dockerfile:labs hevoksaziya eniya pêşîn bi taybetmendiyên mîna piştgirîya heredoc, kontrola --torê li ser her fermanekê, û îşaretên cache-ya pêşkeftî berî ku ew bikevin nav hevoksaziya Dockerfile ya domdar, diceribîne.
Qanûna pênasekirina pêşiya xwe di heman demê de tê vê wateyê ku rêxistinên xwedan hewcedariyên avahîsaziyê yên ne asayî ne hewce ne ku di navbera "her tiştî de bixin nav hevoksaziya Dockerfile" û "bi tevahî konteyniran bihêlin" hilbijêrin. Tîmek ku firmware FPGA-yê ava dike, wêneyên pergalên pêvekirî, an konteynerên modela ML-ya pispor dikare avakirina xwe bi şertên ku ji qada wan re watedar e diyar bike di heman demê de ku hîn jî wêneyên konteynirê yên lihevhatî OCI-ya standard ên ku li her devera ku konteynir dimeşin hildiberînin. Ev berfirehbûn avantajek mîmarî ya rastîn e li ser pergalên çêkirinê yên ku formata têketina xwe wekî sabît dihesibînin.
Provenance û SBOM: Avakirin ji bo Cîhana Post-SolarWinds
Ewlehiya zincîra dabînkirina nermalavê ji xema teorîkî berbi pêşengiya asta panelê ve çû piştî binpêkirina SolarWinds di sala 2020-an de û lawazbûna Log4Shell di sala 2021-an de. Fermana Rêvebir a Hikûmeta Dewletên Yekbûyî ya Amerîkî 14028 li ser ewlehiya sîber, ku di Gulana 2021-an de hate derxistin, ji bo nermalava federal ji peymankeran re mecbûrî kir. Belgeyên erêkirinê yên BuildKit û taybetmendiyên hilberîna SBOM-ê bersivek rasterast e ji vê perestgeha birêkûpêk û ewlehiyê re.
Bi alayên --provenance=true û --sbom=true, BuildKit belgeyên îmzekirî yên krîptografî diafirîne ku tam rave dike ka çi ketiye nav wêneyek konteynerê - kîjan wêneyên bingehîn hatine bikar anîn, kîjan rêwerzên Dockerfile hatine darve kirin, kîjan pelên jêderê hatine veqetandin û kîjan pelên jêderk hatine veguheztin, û Van tesdîqan çarçoweya SLSA (Asta zincîra dabînkirinê ji bo Artifactên Nermalavê) û formata erêkirina in-toto dişopînin, û wan ji hêla motorên polîtîkayê yên mîna Sigstore's Cosign û OPA (Agent Siyaseta Vekirî) ve ji hêla makîneyê ve têne verast kirin.
Pêvajoya xebata pratîkî ya ku ev çalak dike bi vî rengî xuya dike:
- Pêşvebir kodê dixe; Xeta boriya CI avahiyek BuildKit ya ku jêdera çalakkirî ye vedike.
- BuildKit SBOMek îmzekirî çêdike ku hemî pêkhate û guhertoyên wan navnîş dike.
- SBOM li kêleka manîfestoya wêneyê li qeyda konteynerê tê weşandin.
- Kontrolkerên pejirandî yên di koma Kubernetes de berî ku destûrê bidin bicîhkirinê, verastkirinê piştrast dikin.
- Skenerên lawaziyê ji SBOM-ê dipirsin da ku dema ku CVE-yên nû têne eşkere kirin wêneyên bandorkirî nas bike.
Tîmên ku vê xeta lûleyê ya tam pêk tînin dikarin di nav çend saetan de ne bi rojan bersivê bidin daxuyandên lawaziyê, ji ber ku di her konteynir diherike de nexşeyek rastîn, ku ji hêla makîneyê ve tê xwendin hene. Ji bo karsaziyên mîna Mewayz ên ku bi kûrahî di nav karûbarên xebitandinê yên xerîdar de yek dibin - xebitandina mûçe, birêvebirina daneyên fîloya, hilberandina fatûreyan - şiyana ku nîşan bide zincîreyek dabînker a hişk û biguhezbar her ku diçe ji bo danûstendinên firotana pargîdanî her ku diçe şertek pêşwext e, ne tenê xwedîkirina xweş.
Destpêkirin: Ji Avahiyên Pêşverû berbi Boriya Pêşkeftî
BuildKit jixwe di hawîrdora xweya Dockerê de dixebite heke hûn guhertoyek nû bikar tînin - Docker 23.0 û paşê wê bi xwerû çalak bikin. Yekem gava pratîkî ji bo pir tîmê çalakkirina pêveka Docker Buildx e, ku bi jêrfermandariya docker buildx taybetmendiya tevahî ya BuildKit eşkere dike. Bi xebitandina docker buildx create --use mînakek çêkerê BuildKit saz dike ku ji ajokara xwerû bêtir jêhatî ye. Ji wir, pejirandina zêde ya taybetmendiyên pêşkeftî ji bilî ku hewl bidin ku her tiştî bi yekcarî bipejirînin watedar e.
Rêyek pejirandinê ya maqûl ji bo tîmek ku niha bangên avakirina doker ya bingehîn dike, dişibihe ku pêşî li CI-yê hinardekirina cache zêde bike - ev yek bi guherîna mîhengê ya hindiktirîn re çêtirkirinên leza tavilê û pîvandî peyda dike. Dema ku tîm dest bi hedefgirtina binesaziya ARM dike, avahîyên pir-platformê hêja dibin. Çêkirina nepenî hêja ye ku her carê ku qeydên pakêtê yên taybet an bişkokên SSH di çarçoweya çêkirinê de xuya dibin were pejirandin. Dema ku hewcedariyên lihevhatinê an daxwazên xerîdarên pargîdaniyê belgekirina zincîra dabînkirinê hewce dike, îsbatkirina pejirandî watedar e.
Dersa kûrtir a BuildKit li ser avakirina bi zanebûn e. Ku hûn konteynirek ji bo mîkroxizmetek, an xala dawiya encamdana fêrbûna makîneyê, an platformek tevlihev a mîna Mewayz-ê ya ji 207 modulên karsaziyê dişînin, pêvajoya çêkirinê ne fermîyek e ku hûn di riya bicîhkirinê de bilezînin - ew hunerek endezyariyê ye ku qalîteyê, pozîsyona ewlehiyê, û gihîştina xebitandinê ya her tiştê wê nîşan dide. BuildKit amûran dide we ku hûn wê hunerê xweş bikin. Pirs tenê ev e ku hûn wextê wan bikar tînin an na.
Pirsên Pir Pir tên Pirsîn
BuildKit çi ye û ew ji pergala avakirina klasîk a Docker çawa cûda ye?
BuildKit motora çêkirina nifşa din a Docker-ê ye, ku di Docker 18.09-ê de hatî destnîşan kirin û di Docker 23.0-ê de xwerû çêkir. Berevajî çêkerê klasîk, BuildKit darvekirina qata paralel, stratejiyên pêşkeftî yên cachkirinê, sirrkirina razan, û avahiyên cross-platform piştgirî dike. Ew pêvajoya çêkirinê wekî grafek asîklîk a rêveber (DAG) digire dest, ji bo Dockerfilesên tevlihev, pir-qonaxa, çareseriya pêwendiya biaqiltir û demên çêkirina dramatîk zûtir dike.
Ma ez hewce dikim tiştek zêde saz bikim da ku dest bi karanîna BuildKit bi Docker bikim?
Heke hûn Docker 23.0 an nûtir dimeşînin sazkirina zêde hewce nake - BuildKit ji hêla xwerû ve hatî çalak kirin. Li ser guhertoyên kevintir, hûn dikarin wê bi danîna guhêrbara hawîrdorê DOCKER_BUILDKIT=1 berî ku emrên xweya çêkirinê bimeşînin çalak bikin. Ji bo rewşên karanîna pêşkeftî yên mîna şaneyên avakirina dûr an avahiyên pir-platformê, dibe ku hûn bixwazin ku mînakek çêkerê Buildx-ê ya taybetî bi karanîna docker buildx create mîheng bikin.
Ma BuildKit dikare were bikar anîn ji bo çêkirina huneran ji wêneyên konteynerê standard?
Erê, û ev yek ji kapasîteyên BuildKit-ê yên herî kêm têne nirxandin. Bi karanîna pêşekên xwerû û ala --derketin, BuildKit dikare binaryên xav, tarball, malperên statîk, û hunerên pelê yên keyfî yên din hilberîne - ne tenê wêneyên OCI. Ev yek wê dike motorek avahiyek gelemperî ya ku bi xwezayî di nav monoreposên polîglot û boriyên CI yên tevlihev de cîh digire ku tîmên cihêreng ji zincîra amûrek yekbûyî hewceyê formên derketinê yên cihêreng in.
Çawa BuildKit li kêleka amûrên mîna Mewayz di platformek berfireh a DevOps de cîh digire?
BuildKit qata avahîsaziyê ya nizm bi rê ve dibe, lê tîmên pêşkeftinê yên nûjen jî hewce ne ku karûbarên karsaziyê, radestkirina xerîdar, û pêvajoyên xebitandinê birêve bibin. Platformên mîna Mewayz - OS-ya karsaziya 207-module ya ku bi 19 $/mehê dest pê dike - amûra binesaziyê bi vegirtina aliyê xebitandinê yên karsaziyên nermalavê re temam dike. Hevberkirina lûleyên çêkirinê yên bikêrhatî yên ku ji hêla BuildKit ve têne hêzdar kirin bi platformek tev-di-yek mîna Mewayz re, ji hunera kodê bigire heya radestkirina xerîdar stûnek bêkêmasî dide tîmê.
.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 30,000+ businesses. Free forever plan · No credit card required.
Ready to put this into practice?
Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.
Start Free Trial →Related articles
Hacker News
Show HN: 48 absurd web projects – one every month
Apr 16, 2026
Hacker News
€54k spike in 13h from unrestricted Firebase browser key accessing Gemini APIs
Apr 16, 2026
Hacker News
Apple accelerates eco progress with highest-ever recycled materials
Apr 16, 2026
Hacker News
The noise we make is hurting animals. Can we learn to shut up?
Apr 16, 2026
Hacker News
Ancient DNA reveals pervasive directional selection across West Eurasia [pdf]
Apr 16, 2026
Hacker News
AI cybersecurity is not proof of work
Apr 16, 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