Hacker News

BuildKit፡ ማንኛውንም ነገር ሊገነባ የሚችል የዶከር ድብቅ ዕንቁ

አስተያየቶች

2 min read Via tuananh.net

Mewayz Team

Editorial Team

Hacker News

BuildKit፡ ማንኛውንም ነገር መገንባት የሚችል የዶከር ድብቅ ዕንቁ

አብዛኛዎቹ ገንቢዎች ዶከርን የሚያውቁት ሶፍትዌር እንዴት እንደሚላክ የለወጠው የመያዣ አሂድ ጊዜ ነው። በእያንዳንዱ ዘመናዊ የዶከር ግንባታ ወለል ስር በጸጥታ ስለሚያንዣበበው ሞተር - BuildKit፣ ከስሪት 18.09 ጀምሮ ከDocker ጋር ሲጓጓዝ የቆየ እና በDocker 23.0 ውስጥ የነባሪ ድጋፍ ሰጪ የሆነው የቀጣዩ ትውልድ ግንባታ ስርዓት በጣም ጥቂት ነው። መሐንዲሶች ስለ ኩበርኔትስ አወቃቀሮች እና የማይክሮ አገልግሎት ቅጦች ማለቂያ በሌለው ሁኔታ ሲከራከሩ፣ BuildKit በDevOps ሥነ-ምህዳር ውስጥ ካሉ በጣም ኃይለኛ እና ተለዋዋጭ የግንባታ ስርዓቶች ወደ አንዱ እያደገ ነው። ልክ እንደ ፈጣን የዶክተር ግንባታ አድርገው ከያዙት፣ በጠረጴዛው ላይ ትልቅ አቅም ይተዉታል። ከፍተኛ መጠን ያለው የሲአይ/ሲዲ ቧንቧዎችን የሚያንቀሳቅሱ ኩባንያዎች BuildKit በትክክል የሚያቀርበውን በመረዳት የግንባታ ጊዜያቸውን ከ50–70 በመቶ ቀንሰዋል - እና ያ ገና ጅምር ነው።

BuildKitን ከክላሲክ ገንቢ የሚለየው ምንድን ነው

የመጀመሪያው የዶከር መገንቢያ ሞተር የ Dockerfile መመሪያዎችን በቅደም ተከተል አንድ ንብርብር በአንድ ጊዜ ፈጽሟል፣ ምንም አይነት ስራ በአስተማማኝ ሁኔታ በትይዩ ሊከሰት እንደሚችል ምንም ግንዛቤ ሳይኖረው። BuildKit ያንን መስመራዊ የማስፈጸሚያ ሞዴል በሚመራ አሲክሊክ ግራፍ (DAG) ይተካዋል - የትኞቹ የግንባታ ደረጃዎች እርስ በርስ እንደሚተማመኑ እና እንደማይሆኑ የሚረዳ የጥገኛ ግራፍ። ገለልተኛ ደረጃዎች በተመሳሳይ ጊዜ ይከናወናሉ, ጥቅም ላይ ያልዋሉ ደረጃዎች ሙሉ በሙሉ ይዘለላሉ, እና አጠቃላይ ግንባታው በትክክል በቅደም ተከተል ማንበብ ያለብዎት አስፈላጊ የእርምጃዎች ቅደም ተከተል ሳይሆን የሚፈልጉትን ገላጭ መግለጫ ይሆናል. ይህ የስነ-ህንፃ ለውጥ ከፍጥነት በላይ የሆኑ ተግባራዊ ውጤቶች አሉት። ባለ ብዙ ስቴጅ ዶከርፋይል የ Go binaryን በአንድ ደረጃ ሲያጠናቅቅ፣ Node.js ጥገኞችን በሌላ ሲያወርድ እና የምርት ምስልን በሶስተኛ ሲሰበስብ BuildKit የመጀመሪያዎቹን ሁለት ደረጃዎች በአንድ ጊዜ ማሄድ ይችላል። ከዚህ ቀደም በኃይለኛ CI ሯጭ ላይ አራት ደቂቃዎችን የፈጀ ግንባታ አሁን ከዘጠና ሰከንድ በታች ይጠናቀቃል። Stripe፣ Shopify እና ሌሎች ከፍተኛ ደረጃ ያላቸው የምህንድስና ቡድኖች በውስጥ መሳሪያቸው የኋላ እይታዎች ተመሳሳይ እመርታዎችን አስመዝግበዋል። የDAG ሞዴል ማለት BuildKit ከፍተኛ ትክክለኛ የግንባታ ሜታዳታ ማመንጨት ይችላል - እንደ ፕሮቨንስ ማረጋገጫዎች እና የሶፍትዌር ቢል ኦፍ ማቴሪያሎች (SBOM) ማመንጨት ለአቅርቦት ሰንሰለት ደህንነት በጣም አስፈላጊ ለሆኑ ባህሪያት መሠረት ነው።

እንዲሁም መሸጎጫ መጓደል እንዴት እንደሚሰራ ላይ የሐሳብ ለውጥ አለ። ክላሲክ ግንበኛ ከተለወጠው መመሪያ በታች ያለውን እያንዳንዱን ንብርብር ዋጋ አጠፋው። BuildKit በእያንዳንዱ ግብአት ላይ የይዘት hashesን ይከታተላል፣ ስለዚህ በ Dockerfile ውስጥ አስተያየት መቀየር የሰላሳ ደቂቃ ስብስብን የሚወክል መሸጎጫ ግቤት አያጠፋም። የግንባታ መሸጎጫዎ ለኢንጂነሪንግ ቡድንዎ በአምስት ደቂቃ እና በአርባ ደቂቃ መካከል ያለው ልዩነት ሲሆን ይህ ትክክለኛነት መጀመሪያ ላይ ሊመስለው ከሚችለው በላይ በጣም አስፈላጊ ነው ።

ባለብዙ ፕላትፎርም ይገነባል፡ አንድ ትዕዛዝ፣ እያንዳንዱ አርክቴክቸር

BuildKit --platform ባንዲራ እና የQEMU ውህደት በአንድ ወቅት የሚያሰቃይ የብዙ ስርዓት ማስተባበር ችግር የነበረውን ወደ አንድ ትዕዛዝ ይለውጠዋል። docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 .ን ማስኬድ ከአንድ የግንባታ ጥሪ በትይዩ ሶስት ለምርት ዝግጁ የሆኑ ምስሎችን ይፈጥራል። ኢንደስትሪው ወደ ARM ሲሸጋገር ይህ አቅም ወሳኝ ሆኗል - AWS Graviton3 አጋጣሚዎች እንደ ድር አገልግሎት እና ዳታ ማቀናበር ባሉ የስራ ጫናዎች ላይ 40% የተሻለ የዋጋ አፈጻጸምን በተከታታይ ያቀርባሉ፣ እና አፕል ሲሊከን ARMን ለሚሊዮኖች ለሚቆጠሩ መሐንዲሶች ነባሪ የእድገት ማሽን አድርጎታል።

የBuildKit የብዝሃ-ፕላትፎርም ድጋፍ ከመብሰሉ በፊት ለተለያዩ አርክቴክቸር የተለያዩ የግንባታ ቧንቧዎችን ማቆየት እውነተኛ የወጪ ማዕከል ነበር። ቡድኖች ወይ በርካታ Dockerfiles ጠብቀዋል፣የተለያዩ የCI ቧንቧዎችን በተለየ መንገድ በተሰሩ ሯጮች ላይ አካሄዱ፣ወይም በቀላሉ x86 ምስሎችን በየቦታው በመላክ የአፈጻጸም ቅጣቱን በARM መሠረተ ልማት ላይ ከፍለዋል። በBuildKit ግንባታዎን አንድ ጊዜ ይገልፁታል እና ስርዓቱ በሥነ ሕንፃ ላይ የተወሰነ ስብጥርን በግልፅ እንዲይዝ ያስችለዋል። የዝገት ፕሮጄክቶች ማጠቃለያ የሚያስፈልጋቸው የዝገት ፕሮጄክቶች፣ Go ፕሮጀክቶች ከCGO ጥገኞች ጋር፣ Python ፓኬጆች ከሲ ማራዘሚያዎች ጋር — BuildKit የእያንዳንዱን ዒላማ መድረክ ዝርዝሮች እንዲረዱ ሳያስፈልግ የኢምሊሽን ንብርብርን ይቆጣጠራል።

እዚህ ያለው ተግባራዊ የንግድ ዋጋ ሊለካ የሚችል ነው። 200 ኮንቴይነሮችን በAWS Graviton ሁኔታዎች በ$0.04 በvCPU-ሰዓት እና በ$0.056 በvCPU-ሰዓት በ$0.056 በvCPU-ሰዓት በዓመት 11,520 ዶላር በ100 vCPUs ይቆጥባል - ትክክለኛውን አርክቴክቸር ከመምረጥ ብቻ። ያለ ድጋሚ የምህንድስና ጥረት ምርጫውን ተደራሽ ማድረግ በትክክል ራሱን የሚከፍለው የመሠረተ ልማት ማመቻቸት ዓይነት ነው።

ወደ ምስል ንብርብሮች ውስጥ ሳይፈስ ሚስጥራዊ አስተዳደር

በጣም አድናቆት ከሌለው የBuildKit ባህሪያት አንዱ የምስጢር ኤፒአይ ነው። ክላሲክ ዶከር ግንበኛ እነዚያ ምስክርነቶች በምስል ንብርብር ውስጥ ሊጠናቀቁ ካልቻሉ ምስክርነቶችን ወደ ግንባታ የሚያስተላልፍበት ንጹህ መንገድ አልነበረውም። በዚህ ዙሪያ ገንቢዎች በባለብዙ ደረጃ ግንባታዎች፣ ARG መመሪያዎች እና በጥንቃቄ ቅደም ተከተል ሰርተዋል - ነገር ግን በአጋጣሚ የኤፒአይ ቁልፍን ወይም የግል ኤስኤስኤች ቁልፍን ወደ ተልኳይ ምስል የመጋገር አደጋ በማይመች ሁኔታ ከፍተኛ ሆኖ ቆይቷል። የደህንነት ስካነሮች በመደበኛነት በህዝባዊ መዝገብ ቤቶች ላይ በሚታተሙ የእቃ መያዢያ ምስሎች ውስጥ የሃርድ ኮድ ማረጋገጫዎችን ያገኛሉ፣ እና አብዛኛዎቹ ፍንጣቂዎች በግንባታ ጊዜ ምስጢራዊ አያያዝን በቀጥታ ይመለሳሉ።

BuildKit --ምስጢር ጠቋሚ መረጃን በግንባታ አካባቢ ላይ ይሰቀል እንደ ጊዜያዊ የፋይል ስርዓት ዱካ ለተወሰነው የRUN መመሪያ የሚቆይ እና ማንኛውንም የምስል ንብርብር የማይነካ ነው። እንደ RUN --mount=type=secret,id=npmrc cat /run/secrets/npmrc > ~/.npmrc && npm install ያሉ የማስታወሻ ደብተር መመሪያዎች በመጨረሻው ምስል ወይም በማንኛውም መካከለኛ ሽፋን ላይ ሳይታዩ ለግንባታው ሂደት የግል npm ምስክርነቶችን ይሰጣል። ተመሳሳዩ ስርዓተ-ጥለት ለPyPI ምስክርነቶች፣ Maven settings፣ SSH ቁልፎች ለግል ጂት ማከማቻዎች እና የግንባታ ሂደትዎ የሚፈልገውን ማንኛውም ሌላ ሚስጥራዊነት ይሰራል።

ቁጥጥር ስር ያሉ ኢንዱስትሪዎችን የሚነኩ ሶፍትዌሮችን ለሚገነቡ ቡድኖች - የጤና አጠባበቅ መድረኮች፣ የፊንቴክ ምርቶች፣ የሰው ሃይል ሶፍትዌር - በ"ማስረጃዎች በምስሉ ላይ ሊሆኑ ይችላሉ" እና "ምስክርነቶች በምስሉ ላይ ሊሆኑ አይችሉም" መካከል ያለው ልዩነት የደህንነት ኦዲት በማለፍ እና ግኝቶችን ለማረም ሶስት ሳምንታት በማውጣት መካከል ያለው ልዩነት ነው። እንደ ደሞዝ፣ HR እና ደረሰኝ ባሉ ኢንዱስትሪዎች ውስጥ ከ138,000 ለሚበልጡ ተጠቃሚዎች የንግድ ሥራን የሚያበረታቱ እንደ Mewayz ያሉ መድረኮች፣ ደንበኞቻቸው ሚስጥራዊነት ያለው የፋይናንስ እና የሰው ኃይል ውሂባቸው ላይ ያላቸውን እምነት ለማስቀጠል በትክክል በዚህ ዓይነት አስተማማኝ የደህንነት አቀማመጥ ላይ የተመካ ነው።

መሸጎጫ ወደ ውጭ መላክ፡ የ CI ቧንቧዎችን በትክክል ፈጣን ማድረግ

የCI ቧንቧዎች የግንባታ አፈጻጸም በጣም አስፈላጊ የሆኑባቸው እና ነባሪ የዶከር ግንባታ ልምድ በታሪክ በጣም የሚያም ነው። ትኩስ የሲአይኤ ሯጮች ብዙውን ጊዜ በባዶ መሸጎጫዎች ይጀምራሉ፣ ይህም ማለት እያንዳንዱ የቧንቧ መስመር ሩጫ ሁሉንም ነገር ከባዶ ያጠናቅራል ማለት ነው። ለጃቫ አገልግሎት በመቶዎች ለሚቆጠሩ የMaven ጥገኞች፣ የሩስት ፕሮጄክት ወይም የፓይዘን አፕሊኬሽን ከከባድ ቤተኛ ቅጥያዎች ጋር ይህ ማለት ከሰከንዶች ይልቅ በአስር ደቂቃዎች ውስጥ የሚለካ የግንባታ ጊዜ ማለት ነው። የዘገየ CI የንግድ ዋጋ በጣም ትልቅ ነው - የመሰማራት ድግግሞሽ ቀንሷል፣ ረዘም ያለ የግብረ-መልስ ምልልስ እና መሐንዲሶች መዋሃድ እና ከመቀጠላቸው በፊት የቧንቧ መስመሮች እስኪጠናቀቁ ድረስ እየጠበቁ ነው።

የBuildKit መሸጎጫ ወደ ውጭ መላክ ባህሪ ይህንን ወደ ውጭ በሚላኩ መሸጎጫ መግለጫዎች ይፈታል። --cache-to type=registry,ref=myregistry/myapp:cache እና --cache-from type=registry,ref=myregistry/myapp:cacheን በመጠቀም BuildKit ከእያንዳንዱ ግንባታ በኋላ የዝርዝር መሸጎጫ ቅጽበተ-ፎቶን ወደ መዝገብ ቤት ይገፋና በሚቀጥለው ጊዜ ይጎትታል። መሸጎጫው በይዘት አድራሻ ነው፣ ስለዚህ በእውነት የተቀየሩ ንብርብሮች ብቻ እንደገና ይመጣሉ። ይህንን ስርዓተ-ጥለት የሚጠቀሙ ቡድኖች በ GitHub Actions፣ GitLab CI እና CircleCI ውስጥ በመደበኛነት የቧንቧ መስመሮችን ከአስራ አምስት ደቂቃ ወደ ሶስት በታች በሚቀጥሉት ሩጫዎች ይቆርጣሉ። የ GitHub በላቁ የዶክተር ግንባታ የስራ ፍሰቶች ላይ ያለው የራሱ ሰነድ ይህንን ስርዓተ-ጥለት በትክክል ለዚህ ምክንያት ይመክራል።

ፈጣኑ ግንብ ዳግመኛ መሮጥ የሌለብዎት ነው። BuildKit የተደራረበ፣ የይዘት አድራሻ ያለው መሸጎጫ ስርዓት ግንባታዎችን ብቻ አያፋጥንም - አጠቃላይ የ"ግንባታ" ጽንሰ-ሀሳብን የበለጠ ብልህ ያደርገዋል፣ ይህም የተደጋገመውን ስብስብ በትክክል ወደ ተለውጠው ወደ ጭማሪ ልዩነት ይለውጠዋል።

መሸጎጫ ወደ ውጭ መላክ እንዲሁ ከቅርንጫፍ-ተኮር የልማት የስራ ፍሰቶች ጋር በንጽህና ይዋሃዳል። ምንም የቅርንጫፍ መሸጎጫ በማይኖርበት ጊዜ የ CI ቧንቧ መስመርዎን ከቅርንጫፍ-ተኮር መሸጎጫ ወደ ዋናው የቅርንጫፍ መሸጎጫ ተመልሶ እንዲወርድ ማዋቀር ይችላሉ, ይህም ማለት አዳዲስ ቅርንጫፎች በዋናው የእድገት መስመርዎ ከተከማቸ ሞቃት መሸጎጫ ወዲያውኑ ይጠቀማሉ. መሐንዲሶች ለቅዝቃዛ ጅምር ቅጣት ከመጠበቅ ይልቅ በአዲስ ቅርንጫፍ ላይ ለመጀመሪያ ጊዜ ባደረጉት ቃል ፈጣን ምላሽ ያገኛሉ።

💡 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፡ ከ Dockerfiles ባሻገር መገንባት

ምናልባትም ቢያንስ የታወቀው የBuildKit ችሎታ Dockerfiles አንድ ሊሆኑ የሚችሉ የግቤት ቅርጸቶች ብቻ ናቸው - ብቸኛው አይደሉም። BuildKit ሙሉ ለሙሉ ብጁ ቋንቋዎችን እና ቅርጸቶችን መገንባት የሚያስችል ሊሰካ የሚችል የፊት ህንጻ ንድፍ አለው። የፊት ለፊቱ በ# syntax= መመሪያ በግንባታ ፋይልዎ አናት ላይ ይገለጻል፣ይህም BuildKit የተወሰነ የፊት ለፊት ምስል እንዲጎትት እና የቀረውን ፋይል ለመመርመር እና ለማስፈጸም ይጠቀሙበት።

ይህ አርክቴክቸር በርካታ አሳማኝ ፕሮጀክቶችን አስችሏል። የBuildpacks ውህደት BuildKit ከመተግበሪያው ምንጭ ኮድ የመያዣ ምስሎችን ያለ ምንም Dockerfile እንዲገነባ ያስችለዋል። ኤችፒሲ እና ሳይንሳዊ ማስላት ማህበረሰቦች ወደ BuildKit ውስጣዊ LLB (ዝቅተኛ ደረጃ ግንባታ) ውክልና የሚሰበሰቡ በጎራ-ተኮር ቋንቋዎች ግንባታዎችን ለመግለጽ ብጁ የፊት ገጽታዎችን ተጠቅመዋል። የdocker/dockerfile:labs የአገባብ ፊት ለፊት ሙከራዎች እንደ heredoc ድጋፍ፣ --አውታረ መረብበመመሪያው ቁጥጥር እና የተሻሻሉ የመሸጎጫ ፍንጮች በተረጋጋ Dockerfile አገባብ ላይ ከማረፋቸው በፊት።

የራስህን ግንባር የመግለፅ መቻል ማለት ያልተለመዱ የግንባታ መስፈርቶች ያሏቸው ድርጅቶች “ሁሉንም ነገር በዶክከርፋይል አገባብ ውስጥ ያዙሩ” እና “ኮንቴይነሮችን ሙሉ በሙሉ ይተዉ” መካከል መምረጥ የለባቸውም። የቡድን ግንባታ FPGA firmware፣ የተከተቱ ሲስተሞች ምስሎች፣ ወይም ልዩ የኤምኤል አምሳያ ኮንቴይነሮች ግንባታቸውን ለጎራያቸው ትርጉም በሚሰጥ መልኩ ሊገልጹት እና አሁንም መደበኛ OCIን የሚያሟሉ የመያዣ ምስሎችን በማዘጋጀት ኮንቴይነሮች በሚሰሩበት ቦታ ሁሉ። ይህ ኤክስቴንሽን የግብዓት ቅርጸታቸውን እንደ ቋሚ አድርገው ከሚቆጥሩ ስርአቶች ግንባታ ላይ እውነተኛ የስነ-ህንፃ ጥቅም ነው።

ፕሮቨንስ እና SBOM፡ ለድህረ-ሶላር ንፋስ አለም መገንባት

የሶላር ዊንድስ ጥሰት በ2020 እና የLog4Shell ተጋላጭነት ከ2021 በኋላ የሶፍትዌር አቅርቦት ሰንሰለት ደህንነት ከቲዎሬቲካል ስጋት ወደ ቦርድ ደረጃ ተሸጋገረ። በግንቦት 2021 የወጣው የአሜሪካ መንግስት የሳይበር ደህንነትን በተመለከተ የወጣው ትዕዛዝ 14028 ለፌደራል ስራ ተቋራጮች የሶፍትዌር ሰነድ ትእዛዝ ሰጥቷል። የBuildKit የፕሮቬንቴንስ ማረጋገጫዎች እና የ SBOM ትውልድ ባህሪያት ለዚህ የቁጥጥር እና የደህንነት ገጽታ ቀጥተኛ ምላሽ ናቸው።

--provenance=true እና --sbom=true ባንዲራዎች BuildKit በትክክል ወደ መያዣ ምስል ምን እንደገባ — የትኞቹ የመሠረት ምስሎች ጥቅም ላይ እንደዋሉ፣ የትኞቹ የዶክ ፋይል መመሪያዎች እንደተፈጸሙ፣ የትኛዎቹ የምንጭ ፋይሎች እንደነበሩ እና ምን ውጫዊ ጥገኛዎች እንደመጡ የሚገልጹ ምስጢራዊ ፊርማዎችን ያመነጫል። እነዚህ ማረጋገጫዎች SLSA (የአቅርቦት ሰንሰለት ደረጃዎች ለሶፍትዌር ቅርሶች) ማዕቀፍ እና የውስጠ-ማስረጃ ፎርማትን በመከተል እንደ Sigstore's Cosign እና OPA (Open Policy Agent) ባሉ የፖሊሲ ሞተሮች በማሽን እንዲረጋገጡ ያደርጋቸዋል።

ይህ የሚያስችለው ተግባራዊ የስራ ሂደት ይህን ይመስላል፡

  1. ገንቢ ኮድን ይገፋፋል; የ CI ቧንቧ መስመር የBuildKit ግንባታን ከፕሮቬንሽን የነቃ ያደርገዋል።
  2. BuildKit ሁሉንም አካላት እና ስሪቶቻቸውን የሚዘረዝር የተፈረመ SBOM ያመነጫል።
  3. SBOM ከምስሉ ዝርዝር መግለጫው ጋር ወደ መያዣው መዝገብ ታትሟል።
  4. በኩበርኔትስ ክላስተር ውስጥ ያሉ የመግቢያ ተቆጣጣሪዎች ማሰማራትን ከመፍቀዳቸው በፊት ማረጋገጫን ያረጋግጣሉ።
  5. የተጋላጭነት ስካነሮች አዲስ ሲቪኤዎች ሲገለጡ የተጎዱ ምስሎችን ለመለየት SBOMን ይጠይቃሉ።

ይህን ሙሉ የቧንቧ መስመር የሚተገብሩ ቡድኖች በእያንዳንዱ የሩጫ ኮንቴይነር ውስጥ ያሉ ትክክለኛ እና በማሽን ሊነበብ የሚችል የእያንዳንዱ አካል ካርታ ስላላቸው ለተጋላጭነት መግለጫዎች ከቀናት ይልቅ በሰአታት ውስጥ ምላሽ መስጠት ይችላሉ። እንደ Mewayz ላሉ ንግዶች ከደንበኞች የስራ ፍሰት ጋር በጥልቀት ለሚዋሃዱ - የደመወዝ ክፍያን ማስኬድ ፣ መርከቦችን መረጃን ማስተዳደር ፣ ደረሰኞችን ማቀናበር - ጥብቅ እና ኦዲት ሊደረግ የሚችል የአቅርቦት ሰንሰለት ማሳየት መቻል ለድርጅት ሽያጭ ንግግሮች በጣም ጥሩ ብቻ ሳይሆን ለድርጅት የሽያጭ ንግግሮች ቅድመ ሁኔታ ነው።

መጀመር፡ ከነባሪ ግንባታዎች ወደ ከፍተኛ የቧንቧ መስመሮች

የቅርብ ጊዜውን ስሪት — Docker 23.0 እየተጠቀሙ ከሆነ እና በኋላ በነባሪነት ካነቁት

BuildKit ቀድሞውኑ በ Docker አካባቢዎ ውስጥ እየሰራ ነው። ለአብዛኞቹ ቡድኖች የመጀመሪያው ተግባራዊ እርምጃ የBuildKitን ሙሉ ባህሪ በdocker buildx ንዑስ ትዕዛዝ የሚያጋልጥ የ Docker Buildx ተሰኪን ማንቃት ነው። docker buildx create --useን ማስኬድ ከነባሪው አሽከርካሪ የበለጠ አቅም ያለው የBuildKit ግንበኛ ምሳሌን ያዘጋጃል። ከዚያ፣ የላቁ ባህሪያትን መጨመር ሁሉንም ነገር በአንድ ጊዜ ለመውሰድ ከመሞከር ይልቅ ትርጉም ያለው ነው።

በአሁኑ ጊዜ መሰረታዊ የዶክተር ግንባታ ጥሪዎችን ለሚሰራ ቡድን ምክንያታዊ የሆነ የማደጎ መንገድ መጀመሪያ ወደ CI የሚላኩ መሸጎጫዎችን መጨመር ይመስላል - ይህ በትንሹ የውቅረት ለውጥ ፈጣን እና ሊለካ የሚችል የፍጥነት ማሻሻያዎችን ያቀርባል። ቡድኑ የARM መሠረተ ልማትን ማነጣጠር ሲጀምር የባለብዙ ፕላትፎርም ግንባታዎች ጠቃሚ ይሆናሉ። በሚስጥር መጫን በማንኛውም ጊዜ የግል ጥቅል መዝገቦች ወይም ኤስኤስኤች ቁልፎች በግንባታ አውድ ውስጥ ሲታዩ መቀበል ተገቢ ነው። የተሟሉ መስፈርቶች ወይም የድርጅት ደንበኞች ጥያቄዎች የአቅርቦት ሰንሰለት ሰነዶችን አስፈላጊ ሲያደርጉ የፕሮቨንስ ማረጋገጫዎች ለማንቃት ትርጉም ይሰጣሉ።

የBuildKit ጥልቅ ትምህርት ሆን ተብሎ ስለመገንባት ነው። ለማይክሮ ሰርቪስ ኮንቴይነር እየላኩ ከሆነ፣ የማሽን መማሪያ ግምታዊ መደምደሚያ ወይም እንደ Mewayz's Suite 207 የንግድ ሞጁሎች፣ የግንባታ ሂደቱ እርስዎ ለማሰማራት በሚሄዱበት መንገድ ላይ የሚጣደፉበት መደበኛነት አይደለም - ከሱ የሚላኩትን ነገሮች ሁሉ ጥራትን፣ ደህንነትን እና የአሰራር ብስለትን የሚያንፀባርቅ የምህንድስና ቅርስ ነው። BuildKit ያንን ቅርስ በጣም ጥሩ ለማድረግ መሳሪያዎችን ይሰጥዎታል። ጥያቄው በቀላሉ ጊዜ ወስደህ ለመጠቀም ነው ወይ የሚለው ነው።

ብዙ ጊዜ የሚጠየቁ ጥያቄዎች

BuildKit ምንድን ነው እና ከጥንታዊው የዶከር ግንባታ ስርዓት የሚለየው እንዴት ነው?

BuildKit በ Docker 18.09 አስተዋወቀ እና በDocker 23.0 ውስጥ ነባሪው የሰራው የዶከር ቀጣይ ትውልድ ግንባታ ሞተር ነው። እንደ ክላሲክ ግንበኛ ሳይሆን BuildKit ትይዩ የንብርብር አፈፃፀምን፣ የላቁ መሸጎጫ ስልቶችን፣ ሚስጥሮችን መጫን እና የመድረክ-አቋራጭ ግንባታዎችን ይደግፋል። የግንባታ ሂደቱን እንደ ቀጥተኛ አሲክሊክ ግራፍ (DAG) ይወስደዋል፣ ብልህ ጥገኝነት መፍታትን እና ውስብስብ ለሆኑ ባለብዙ-ደረጃ Dockerfiles በሚያስደንቅ ፍጥነት የግንባታ ጊዜዎች።

BuildKitን በDocker መጠቀም ለመጀመር ተጨማሪ ነገር መጫን አለብኝ?

Docker 23.0 ወይም ከዚያ በላይ እያሄዱ ከሆነ ምንም ተጨማሪ መጫን አያስፈልግም — BuildKit በነባሪነት ነቅቷል። በአሮጌ ስሪቶች ላይ የግንባታ ትዕዛዞችን ከማስኬድዎ በፊት የአካባቢን ተለዋዋጭ DOCKER_BUILDKIT=1 በማቀናበር ማግበር ይችላሉ። እንደ የርቀት ግንባታ መሸጎጫዎች ወይም ባለብዙ ፕላትፎርም ግንባታዎች ላሉት የላቁ የአጠቃቀም ጉዳዮች docker buildx createን በመጠቀም የተለየ የBuildx ግንበኛ ምሳሌ ማዋቀር ሊፈልጉ ይችላሉ።

ከመደበኛ የመያዣ ምስሎች በላይ የሆኑ ቅርሶችን ለመገንባት BuildKit ጥቅም ላይ ሊውል ይችላል?

አዎ፣ እና ይህ ከBuildKit በጣም ዝቅተኛ አድናቆት ከሌለው ችሎታዎች ውስጥ አንዱ ነው። ብጁ የፊት ገጽታዎችን እና የ--ውፅዓት ባንዲራ በመጠቀም BuildKit ጥሬ ሁለትዮሾችን፣ ታርቦሎችን፣ የማይንቀሳቀሱ ድረ-ገጾችን እና ሌሎች የዘፈቀደ የፋይል ቅርሶችን - የOCI ምስሎችን ብቻ ሳይሆን ማምረት ይችላል። ይህ በተፈጥሮው ወደ ፖሊግሎት ሞኖሬፖስ እና ውስብስብ የሲአይኤ ቧንቧዎች ጋር የሚገጣጠም አጠቃላይ ዓላማ ያለው የግንባታ ሞተር ያደርገዋል።

BuildKit እንደ Mewayz ካሉ መሳሪያዎች ጎን ለጎን ወደ ሰፊው DevOps መድረክ እንዴት ይጣጣማል?

BuildKit ዝቅተኛ ደረጃ የግንባታ ንብርብርን ይቆጣጠራል፣ነገር ግን የዘመናዊ ልማት ቡድኖች እንዲሁ የንግድ የስራ ፍሰቶችን፣ የደንበኛ አቅርቦትን እና የአሰራር ሂደቶችን ማስተዳደር አለባቸው። እንደ Mewayz ያሉ መድረኮች - ባለ 207-ሞዱል ቢዝነስ ኦኤስ ከ$19/በወር - የሶፍትዌር ንግዶችን የስራ ጎን በመሸፈን የመሰረተ ልማት መሳሪያዎችን ያሟላሉ። ቀልጣፋ የግንባታ ቧንቧዎችን በBuildKit የተጎለበተ እንደ Mewayz ካለው ሁሉን-በአንድ መድረክ ጋር ማጣመር ለቡድኖች ከኮድ ቅርስ እስከ ደንበኛ አቅርቦት ድረስ የተሟላ ቁልል ይሰጣል።