Hacker News

BuildKit: Docker's Gem Qarsoon oo Dhisi kara Ku dhawaad ​​Wax kasta

Faallo

16 min read Via tuananh.net

Mewayz Team

Editorial Team

Hacker News

BuildKit: Docker's Gem Qarsoon Kaas Oo Dhisi Kara Ku dhawaad Wax Kasta

Inta badan horumariyayaashu waxay u yaqaaniin Docker sida wakhtiga weelka ee bedelay sida software loo soo raro. Wax aad u yar ayaa ka og matoorka si aamusnaan leh oo hoos ugu dhacaya dusha sare ee dhisme kasta oo Docker casri ah - BuildKit, nidaamka dhismaha jiilka xiga ee lagu soo raray Docker ilaa nooca 18.09 oo noqday dhabarka dambe ee Docker 23.0. In kasta oo injineeradu ay si aan dhammaad lahayn uga doodayaan isku-habaynta Kubernetes iyo qaababka adeeg-yaraha, BuildKit waxa uu si joogto ah ugu soo baxayay mid ka mid ah nidaamyada ugu awoodda badan, ee dabacsan ee nidaamka deegaanka DevOps. Haddii aad ula dhaqmaysay sidii dhismaha docker dhakhso badan, waxaad miiska kaga tagaysaa karti aad u weyn. Shirkadaha ku shaqeeya dhuumaha CI/CD-da ee soo saara sare waxay gooyeen wakhtiyada dhismaha 50-70% si fudud iyagoo fahmaya waxa BuildKit dhab ahaantii bixiso - taasina waa bilawga.

Maxaa ka dhigaya BuildKit asal ahaan ka duwan dhisaha Classic

Matoorka asalka ah ee Docker-ka wuxuu fuliyay tilmaamaha Dockerfile si isdaba joog ah, hal lakab markiiba, iyada oo aan la ogeyn waxa shaqadu si badbaado leh u dhici karto si barbar socda. BuildKit waxay ku beddeshaa qaabkaas fulinta tooska ah garaaf toosan oo wareeg ah (DAG) - garaaf ku tiirsanaanta oo fahma talaabooyinka dhisa midba midka kale ku tiirsan iyo kuwa aan ku tiirsanayn. Marxaladaha madaxbannaani waxay fuliyaan si isku mid ah, marxaladaha aan la isticmaalin gabi ahaanba waa laga boodaa, dhismuhuna wuxuu noqdaa sharraxaad caddayn ah oo ku saabsan waxaad rabto halkii aad ka ahaan lahayd tillaabooyin isku xiga oo muhiim ah oo aad u akhrido sida saxda ah.

Isbeddelka qaab dhismeedkani waxa uu leeyahay cawaaqib la taaban karo oo dhaafsiisan xawaaraha. Marka Dockerfile-ka marxalado badan uu ururiyo Go binary hal marxalad, soo dejiso ku tiirsanaanta Node.js mid kale, oo uu ku ururiyo sawirka wax soo saarka saddex meelood meel, BuildKit waxay wada socon kartaa labada marxaladood ee hore isku mar. Dhisme hore ugu qaatay afar daqiiqo orodyahanka CI ee awooda badan hadda waxa uu ku dhammeeyaa wax ka yar sagaashan ilbiriqsi. Stripe, Shopify, iyo buundooyinka kale ee kooxaha injineerada heerka sare ah waxay diiwaangeliyeen guulo la mid ah dib-u-eegistooda qalabaynta gudaha. Qaabka DAG waxa kale oo uu ka dhigan yahay BuildKit waxa uu soo saari karaa xog-ururin si sax ah oo sax ah - aasaas u ah sifooyinka sida caddaynta caddaynta iyo jiilka software biilka (SBOM) oo muhiim u ah ilaalinta silsiladda sahayda.

Sidoo kale waxa jira isbeddel fikradeed oo ku saabsan sida uu buriyaynta cache u shaqeyso. Dhismihii caadiga ahaa wuxuu buriyay lakab kasta oo ka hooseeya tilmaamaha la beddelay. BuildKit waxay la socotaa xashiishyada nuxurka qayb kasta, marka beddelidda faallooyinka Dockerfile ma baabi'inayso kaydinta kaydinta oo ka dhigan soddon daqiiqo oo la ururiyay. Marka kaydka dhismuhu uu yahay farqiga u dhexeeya shan daqiiqo iyo afartan daqiiqo oo jawaab celin ah oo loogu talagalay kooxdaada injineernimada, saxnimadan ayaa aad uga badan inta ay marka hore u muuqan karto.

Qalab badan ayaa dhisay: Hal talis, dhisme kasta

BuildKit's --platform calanka iyo is dhexgalka QEMU waxay u beddelaan waxa mar ahaan jiray dhibaato iskudubarid nidaamyo badan oo xanuun badan oo hal amar ah. Ku shaqaynta docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 . waxa ay soo saartaa saddex sawir oo wax soo saar u diyaarsan oo barbar socda hal codsi dhis. Awoodani waxay noqotay mid muhiim ah iyadoo warshaduhu u wareegayaan dhanka ARM - AWS Graviton3 xaaladaha waxay si joogto ah u bixiyaan 40% waxqabadka qiimaha ka wanaagsan ee culeyska shaqada sida adeega webka iyo habaynta xogta, iyo Apple Silicon ayaa ARM ka dhigtay mashiinka horumarinta caadiga ah ee malaayiin injineero ah.

Kahor intaysan qaangaarin taageerada madal-badan ee BuildKit, ilaalinta tubooyinka dhismaha ee kala duwan waxay ahayd xarun kharash dhab ah. Kooxuhu waxay haysteen dhowr Dockerfiles, waxay ku ordeen dhuumo CI gaar ah orodyahanno siyaalo kala duwan loo dhisay, ama si fudud u raray sawirada x86 meel walba waxayna bixiyeen ciqaabta waxqabadka kaabayaasha ARM. BuildKit, waxaad qeexaysaa dhismahaaga hal mar oo u ogolow nidaamku inuu si hufan u maamulo isku-dubarid gaar ah oo qaab dhismeedka. Mashaariicda daxalka ah ee u baahan isku-dubarid isku-dhafan, Go mashaariicda leh ku-tiirsanaanta CGO, xirmooyinka Python leh kordhinta C - BuildKit waxay qabataa lakabka ku dayashada iyada oo aan u baahnayn inaad fahamto faahfaahinta goob kasta oo la beegsanayo.

Qiimaha ganacsi ee dhabta ah halkan waa mid la qiyaasi karo. Koox ku shaqeysa 200 weel oo ku saabsan xaaladaha AWS Graviton ee $0.04 saacaddii vCPU-da iyo u dhiganta x86 tusaale ahaan $0.056 saacaddii vCPU-gu waxay badbaadisaa ku dhawaad ​​$11,520 sanadkii 100 vCPU-yada - kaliya inay doortaan qaab dhismeedka saxda ah. Ka dhigista doorashadaas mid la heli karo iyada oo aan la helin dadaal dib-u-habayneed dhab ahaantii waa nooca kobcinta kaabayaasha ee isla markiiba iska bixiya.

Maaraynta sirta oo aan ku daalin lakabyada sawirka

Mid ka mid ah sifooyinka BuildKit ee aadka loo qadarin waa sirteeda API. Docker-dhisiyaha caadiga ah ma lahayn hab nadiif ah oo uu ugu gudbiyo aqoonsiga dhismo iyada oo aan shahaadooyinkaasi ku dhamaanayn lakabka sawirka. Soo-saarayaashu waxa ay ka shaqeeyeen dhismooyin dhowr ah, ARG tilmaamaha, iyo dalbashada taxaddarka leh - laakiin khatarta ah in si lama filaan ah loogu dubo furaha API ama furaha SSH ee gaarka ah ee sawirka la raray ayaa weli ah mid aan raaxo lahayn. Sawir-qaadayaasha ammaanku waxay si joogto ah uga helaan aqoonsiyo adag oo ku jira sawirrada weelka ee lagu daabacay diiwaannada dadweynaha, iyo qaar badan oo ka mid ah daadadyadaas waxay si toos ah dib ugu noqdaan maaraynta qarsoodiga ah ee qarsoodiga ah inta lagu jiro dhismaha.

BuildKit's -- sirta calanka wuxuu ku dhejiyaa xogta xasaasiga ah deegaanka dhismaha sida dariiqa faylalka ku meel gaadhka ah ee jira oo keliya inta lagu jiro tilmaamaha RUN gaarka ah ee u baahan oo aan waligii taaban lakabka sawirka. Tilmaanta Dockerfile sida RUN --Mount=type= sir,id=npmrc bisad /run/sirta/npmrc> ~/.npmrc && npm install waxa ay siisaa habka dhisitaanka marin uhelida aqoonsiga npm ee gaarka ah iyada oo aan shahaadooyinkaas weligood ka muuqan sawirka kama dambaysta ah ama lakab dhexdhexaad ah. Qaab la mid ah ayaa u shaqeeya aqoonsiga PyPI, Maven settings, furayaasha SSH ee meelaha gaarka ah ee Git, iyo walxo kale oo xasaasi ah oo habka dhismuhu u baahan yahay.

Kooxaha dhisaya software ee taabta warshadaha nidaamsan - xarumaha daryeelka caafimaadka, alaabada fintech, software HR - farqiga u dhexeeya "aqoonsiga waxaa laga yaabaa inay ku jiraan sawirka" iyo "cadeyntu si cad uma muuqan karto sawirka" waa farqiga u dhexeeya gudbinta hantidhawrka amniga iyo qaadashada saddex toddobaad si loo saxo natiijooyinka. Nidaamyada sida Mewayz, oo awood u leh hawlaha ganacsiga in ka badan 138,000 isticmaalayaasha guud ahaan warshadaha sida mushahar bixinta, HR, iyo qaansheegta, waxay ku xiran tahay sida saxda ah ee noocaan ah ee qaabka amniga ee dhismahooda iyo geynta dhuumaha si ay u ilaaliyaan kalsoonida macaamiishu u fidiyaan xogtooda maaliyadeed iyo shaqaale ee xasaasiga ah.

Dhoofinta kaydka: Samaynta dhuumaha CI si dhab ah

Dhuumaha CI waa halka ugu badan ee wax qabadku muhiim u yahay iyo halka khibradda dhismaha Docker ee caadiga ah uu taariikh ahaan ugu xanuun badnaa. Orodyahannada CI ee cusub waxay caadi ahaan ku bilaabaan khasnado madhan, taasoo la micno ah socodsiin kasta oo dhuumo qaada ayaa wax walba ka soo uruuriya meel eber ah. Adeegga Java oo leh boqollaal ku-tiirsanaan Maven ah, mashruuc Rust ah, ama codsi Python ah oo leh kordhin culus oo hooyo, tani waxay la macno tahay dhisidda waqtiyo lagu qiyaasay tobanaan daqiiqo halkii ilbiriqsi. Qiimaha ganacsi ee gaabis CI waa mid aad u weyn - soo noqnoqoshada hawlgelinta oo yaraatay, jawaab celin dheer oo jawaab celin ah, iyo injineero fadhiya oo sugaya dhuumaha si ay u dhamaystiraan ka hor inta aanay isku darin oo aanay dhaqaaqin.

Qaabka dhoofinta kaydka ee BuildKit ayaa tan ku xalinaysa cache-ga la dhoofin karo. Adigoo isticmaalaya --cache-to type=registry,ref=myregistry/myapp:cache iyo --cache-from type=registry,ref=myregistry/myapp:cache, BuildKit waxa ay ku riixdaa sawir muuqaal ah oo tafatiran diiwaanka ka dib marka la dhiso oo soo jiido marka xigta. Khasnadku waxa lagu soo hagaajiyay, markaa lakabyada dhabta ah ee la beddelay oo keliya ayaa dib loo soo qaadaa. Kooxaha isticmaala qaabkan ee GitHub Actions, GitLab CI, iyo CircleCI waxay si joogto ah u gooyaan wakhtiyada dhuumaha min shan iyo toban daqiiqo ilaa saddex ka yar socodka xiga. Dukumeenti u gaar ah oo GitHub ah oo ku saabsan dhisidda socodka shaqada Docker ee horumarsan ayaa si weyn ugu talinaysa qaabkan sababtan saxda ah.

Dhismaha ugu dhaqsaha badan waa kan aadan waligaa dib u ordi karin. BuildKit's lakabka leh, nidaamka kaydinta macluumaadka ku jira kaliya ma dadajiyo dhismooyinka - waxay ka dhigtaa fikradda "dhis" mid caqli badan, u rogida isku-darka soo noqnoqda ee isbeddelka kordhinta ee saxda ah waxa isbeddelay.

Dhoofinta kaydka sidoo kale waxay si nadiif ah ula midowdaa socodka shaqada ee horumarinta laanta. Waxaad u habayn kartaa tubbadaada CI si ay uga soo noqoto kaydka laanta gaarka ah oo aad ku soo noqoto kaydka laanta marka aanay jirin wax kayd ah oo laan ah, taasoo la micno ah in laamo cusub isla markiiba ka faa'iidaystaan ​​kaydka diiran ee lagu ururiyay khadkaaga horumarinta. Injineerada ayaa jawaab celin degdeg ah ka hela ballankooda ugu horreeya ee laanta cusub halkii ay sugi lahaayeen ciqaab bilow qabow.

💡 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: Dhismaha ka baxsan Dockerfiles Waxaa laga yaabaa in awoodda ugu yar ee loo yaqaan 'BuildKit' ay tahay in Dockerfiles ay yihiin hal qaab oo macquul ah - ma aha ka kaliya. BuildKit waxay leedahay qaab dhismeedka hore ee la xidhi karo kaas oo u oggolaanaya in la dhiso luuqado iyo qaabab qeexitaan oo dhammaystiran. Xagga hore waxa lagu qeexay dardaaranka # syntax= ee ku yaal xagga sare ee faylkaaga dhismaha, kaas oo u sheegaya BuildKit inuu jiido muuqaal hore oo gaar ah oo uu isticmaalo si uu u kala saaro oo u fuliyo faylka intiisa kale.

Nashqadani waxa ay suurtogelisay dhawr mashruuc oo soo jiidasho leh. Isku dhafka Buildpacks wuxuu u ogolaanayaa BuildKit inuu dhiso sawirada weelka laga soo bilaabo koodka isha codsiga iyada oo aan la helin wax Dockerfile ah gabi ahaanba - waxay ogaataa luqadda, waxay doorataa sawirada aasaasiga ah ee habboon, oo si toos ah u ururisa weel diyaarsan. HPC iyo bulshooyinka xisaabinta sayniska waxay isticmaaleen horudhaco caado ah si ay u qeexaan dhismooyinka luuqadaha gaarka ah ee hoos u dhigaya matalaada BuildKit ee gudaha LLB (Heerka-Dhismaha Hoose). The docker/dockerfile: labs tijaabooyinka hore ee syntax oo leh astaamo ay ka mid yihiin taageerada heredoc, --network xakamaynta tilmaam kasta, iyo tilmaamo kayd ah oo la xoojiyey ka hor inta aanay ku degin ereyga Dockerfile deggan.

Awooda lagu qeexo dhinaca hore waxa kale oo ay la macno tahay ururada leh shuruudo dhismo oo aan caadi ahayn maaha inay kala doortaan "wax kasta oo kabo gees ah u geli syntax Dockerfile" iyo "ka tag weelasha gabi ahaanba." Kooxda dhiseysa firmware FPGA, sawirada nidaamka isku-xidhan, ama weelasha moodeelka gaarka ah ee ML waxay ku sifayn karaan dhismahooda si macne u leh goobtooda iyagoo wali soo saaraya sawirada weelka ee OCI-ga u hoggaansan ee geynaya meel kasta oo weelku ordaan. Kordhintaani waa faa'iido dhismeed oo dhab ah marka loo eego dhismooyinka nidaamyada ula dhaqma qaab-dhismeedkooda mid go'an.

Provenance iyo SBOM: Dhisidda Dunida Dabaysha Qorraxda Kadib

Nabadgelyada silsiladda sahayda softiweerku waxay ka guurtay walaac aragtiyeed waxayna u gudubtay mudnaanta heerka guddiga ka dib jebinta SolarWinds ee 2020 iyo nuglaanta Log4Shell ee 2021. Amarka fulinta ee dawladda Mareykanka 14028 ee amniga internetka, oo la soo saaray Maajo 2021, wuxuu amray biilka software ee qandaraaslayaasha federaalka. Markhaati-furnaanta BuildKit iyo astaamaha jiilka SBOM ayaa jawaab toos ah u ah hab-dhaqankan sharciyeed iyo amniga.

Iyada oo --provenance= runiyo --sbom= run calamada, BuildKit waxay abuurtaa caddaymo si qarsoodi ah u saxeexay oo qeexaya sida saxda ah waxa galay sawirka weelka - kuwaas oo sawirada salka la isticmaalay, kuwaas oo tilmaamaha Dockerfile la fuliyay, faylalka isha ee jira, iyo waxa ku tiirsanaanta dibadda ee la keenay. Marqaatiyadani waxay raacaan SLSA (Heerarka Silsilada-saldhigga ee Farshaxanka Software-ka) qaab-dhismeedka iyo qaabka caddaynta, taasoo ka dhigaysa mashiinka lagu xaqiijin karo matoorada siyaasadda sida Sigstore's Cosign iyo OPA (Wakiilka Siyaasadda Furan).

Socodka shaqada ee la taaban karo tani waxay awood u siinaysaa sidan:

  1. horumariyaha ayaa riixaya koodka; Dhuumaha CI waxay kicisaa dhisme BuildKit ah oo awood loo siiyay.
  2. BuildKit waxa ay abuurtaa SBOM saxeexan oo taxay dhammaan qaybaha iyo noocyadooda.
  3. SBOM waxa lagu daabacay diiwaanka weelka oo ay weheliso muujinta sawirka.
  4. Kontaroolayaasha gelitaanka ee kutlada Kubernetes waxay xaqiijiyaan jiritaanka ka hor intaysan oggolaan in la diro.
  5. Scanners nuglaanta waxay waydiiyaan SBOM si ay u aqoonsadaan sawirada la saameeyey marka CVE-yada cusub la shaaciyo.
Kooxaha fuliya dhuumahaan buuxa waxay kaga jawaabi karaan muujinta nuglaanta saacado gudahood halkii ay ka ahaan lahaayeen maalmo, sababtoo ah waxay haystaan khariidad sax ah oo mashiinka lagu akhriyi karo oo ah qayb kasta oo ku jirta weel kasta oo socda. Ganacsiyada sida Mewayz oo si qoto dheer ugu dhex milma socodka shaqada macaamiisha - socodsiinta mushaharka, maaraynta xogta maraakiibta, habaynta qaansheegyada - awooda lagu muujinayo silsilad sahayda adag, la hubin karo ayaa sii kordheysa shardi u ah wadahadalka iibka ganacsiga, ma aha oo kaliya wax fiican in la yeesho.

Bilawga: Laga Bilaabo Dhismaha Ugu Dambeeya ilaa Tubooyin Sare

BuildKit wuxuu horeyba ugu dhex shaqaynayaa deegaanka Docker-kaaga haddii aad isticmaalayso nooc dhawaan ah - Docker 23.0 oo hadhowna si toos ah u awood. Tallaabada ugu horreysa ee wax ku oolka ah ee kooxaha badankood waxay awood u siineysaa Docker Buildx plugin, kaas oo kashifaya BuildKit muuqaalkiisa buuxa ee loo dejiyay docker buildx amar-hoosaad. Ku socodsiinta docker buildx create --use ayaa dejisa tusaale dhisaha BuildKit oo leh karti ka badan darawalka caadiga ah. Halkaa, kor u qaadista sifooyinka sare waxay macno samaynaysaa halkii aad isku dayi lahayd inaad wax walba hal mar qaadato.

Dariiqa korsashada ee macquulka ah ee kooxda hadda sameynaya dhisidda docker waxay u egtahay in lagu daro dhoofinta kaydinta CI marka hore - tani waxay keenaysaa hagaajin degdeg ah, xawaare la cabbiri karo iyadoo isbeddel qaabeyn yar leh. Dhismooyinka madal-badana waxay noqdaan kuwo qiimo leh marka kooxdu bilaabaan beegsiga kaabayaasha ARM. Kordhinta sirta ah waxay mudan tahay in la qaato wakhti kasta oo diiwaan-gelinta xirmada gaarka ah ama furayaasha SSH ay ka soo muuqdaan macnaha guud. Markhaati-furnaanta ayaa macno samaynaya marka shuruudaha u hoggaansanaanta ama dalabaadka macaamiisha ganacsigu ay ka dhigayaan dukumeenti silsiladda sahayda ah lama huraan.

Casharka qoto dheer ee BuildKit wuxuu ku saabsan yahay si ula kac ah loo dhiso. Haddii aad u soo dirayso weel loogu talagalay microservice, mashiinka barashada mashiinka, ama madal adag sida Mewayz's suite of 207 modules ganacsi, habka dhismuhu maaha mid rasmi ah oo aad ku degdegto habka loo diro - waa farshaxan injineernimo oo ka tarjumaysa tayada, qaabka amniga, iyo qaan-gaarnimada hawl kasta oo ka soo baxa. BuildKit wuxuu ku siinayaa agabka aad farshaxankaas uga dhigi lahayd mid aad u wanaagsan. Su'aashu waxay tahay si fudud haddii aad waqti ku qaadato inaad isticmaasho.

Su'aalaha Inta badan La Isweydiiyo

Waa maxay BuildKit sideese uga duwan yahay nidaamka dhismaha Docker-ka caadiga ah?

BuildKit waa Docker jiilka soo socda ee matoorka, lagu soo bandhigay Docker 18.09 oo ka dhigay sida caadiga ah Docker 23.0. Si ka duwan wax-dhisaha caadiga ah, BuildKit waxa ay taageertaa fulinta lakabka barbar socda, xeeladaha kaydinta horumarsan, kor u qaadista siraha, iyo dhismooyinka iskutallaabyada. Waxay ula dhaqantaa habka dhisidda sidii garaaf wareeg ah oo toosan (DAG), taasoo awood u siinaysa xallinta ku-tiirsanaanta ka wanagsan iyo waqtiyo dhisme aad u degdeg badan oo kakan, heerar badan oo Dockerfiles ah.

Miyaan u baahanahay inaan ku rakibo wax dheeraad ah si aan u bilaabo isticmaalka BuildKit ee Docker?

Ma jiro rakibaad dheeri ah oo loo baahan yahay haddii aad ku socoto Docker 23.0 ama ka dib - BuildKit waa la furay. Noocyadii hore, waxaad ku dhaqaajin kartaa adiga oo dejinaya doorsoomaha deegaanka DOCKER_BUILDKIT=1 ka hor intaadan socodsiin amarradaada dhismaha. Kiisaska isticmaalka horumarsan sida meel fog laga dhiso ama dhismayaal badan, waxa laga yaabaa inaad rabto inaad habayso tusaale dhise Buildx u go'an adoo isticmaalaya docker buildx create.

BuildKit ma loo isticmaali karaa in lagu dhiso waxyaabo ka baxsan sawirada weelka caadiga ah?

Haa, oo tani waa mid ka mid ah awoodaha BuildKit ee aadka loo qadariyo. Isticmaalka geesaha hore ee caadiga ah iyo calanka --output, BuildKit waxay soo saari kartaa binaries ceeriin, tarballs, mareegaha static, iyo fayl kale oo artifacts ah - ma aha oo kaliya sawirada OCI. Tani waxay ka dhigaysaa matoor dhisme ujeedo guud ah oo si dabiici ah ugu habboon polyglot monorepos iyo dhuumaha adag ee CI halkaas oo kooxo kala duwani u baahan yihiin qaabab wax soo saar oo kala duwan oo ka imanaya qalab midaysan.

Sidee buu BuildKit ugu habboon yahay madal ballaadhan oo DevOps ah oo ay weheliso aaladaha sida Mewayz?

BuildKit waxay gacanta ku haysaa lakabka dhisme ee hooseeya, laakiin kooxaha horumarinta casriga ah waxay sidoo kale u baahan yihiin inay maareeyaan socodka shaqada ganacsiga, gaarsiinta macmiilka, iyo hababka hawlgalka. Nidaamyada sida Mewayz - 207-module-ganacsi OS ah oo ka bilaabma $19/mo - waxa ay dhamaystiraan qalabaynta kaabayaasha iyada oo daboolaysa dhinaca shaqada ee ganacsiyada software-ka. Isku-dubbaridka dhuumaha dhismaha waxtarka leh ee ay ku shaqeyso BuildKit oo leh madal-hal-hal ah sida Mewayz ayaa siinaysa kooxuhu tiro dhammaystiran oo laga soo bilaabo agabka koodka ilaa bixinta macaamiisha.