BuildKit: Tiodaralopolopo ti Docker ti o le Kọ O fẹrẹ to ohunkohun
Comments
Mewayz Team
Editorial Team
BuildKit: Tiodaralopolopo Docker ti o le Kọ Fere Ohunkohun
Pupọ julọ awọn olupilẹṣẹ mọ Docker bi akoko asiko eiyan ti o yipada bi sọfitiwia ṣe n gbejade. Diẹ diẹ mọ nipa ẹrọ ni idakẹjẹ humming nisalẹ dada ti gbogbo Docker Docker ode oni - BuildKit, eto kikọ iran ti nbọ ti o ti n firanṣẹ pẹlu Docker lati ẹya 18.09 ati pe o di ẹhin aiyipada ni Docker 23.0. Lakoko ti awọn onimọ-ẹrọ n jiyan lainidi nipa awọn atunto Kubernetes ati awọn ilana microservice, BuildKit ti n dagbasoke ni imurasilẹ sinu ọkan ninu awọn eto iṣelọpọ ti o lagbara julọ, rọ ni ilolupo DevOps. Ti o ba ti nṣe itọju rẹ bi o kan yiyara
Kini O Jẹ ki BuildKit Ni Pataki Yatọ Lati Akole Alailẹgbẹ h2>
Ẹnjini kọkọ Docker atilẹba ṣiṣẹ awọn ilana Dockerfile lẹsẹsẹ, Layer kan ni akoko kan, laisi imọ ohun ti iṣẹ le ṣẹlẹ lailewu ni afiwe. BuildKit rọpo awoṣe ipaniyan laini yẹn pẹlu ayaworan acyclic ti a darí (DAG) - aworan igbẹkẹle ti o loye iru awọn igbesẹ ti o dale lori ara wọn ati eyiti ko ṣe. Awọn ipele ominira ṣiṣẹ ni igbakanna, awọn ipele ti a ko lo ni a fo patapata, ati pe gbogbo kikọ naa di ijuwe asọye ti ohun ti o fẹ kuku ju lẹsẹsẹ awọn igbesẹ ti o ṣe pataki ti o ni lati ka ni ọna ti o tọ.
Iyipada ti ayaworan yii ni awọn abajade to wulo ti o kọja iyara. Nigba ti Dockerfile ti ọpọlọpọ-ipele ṣe akopọ Go alakomeji ni ipele kan, ṣe igbasilẹ awọn igbẹkẹle Node.js ni omiiran, ati pejọ aworan iṣelọpọ ni ẹkẹta, BuildKit le ṣiṣe awọn ipele meji akọkọ ni nigbakannaa. Itumọ ti o gba iṣẹju mẹrin ni iṣaaju lori asare CI ti o lagbara ni bayi pari labẹ awọn aaya aadọrun. Stripe, Shopify, ati awọn ikun ti awọn ẹgbẹ imọ-ẹrọ giga-giga miiran ti ṣe igbasilẹ awọn anfani ti o jọra ni awọn ifẹhinti ohun elo inu inu wọn. Awoṣe DAG tun tumọ si BuildKit le ṣe agbejade metadata ti o peye ga julọ - ipilẹ kan fun awọn ẹya bii awọn ijẹrisi ti o jẹri ati iran awọn ohun elo sọfitiwia (SBOM) ti o ṣe pataki pupọ fun aabo pq ipese.
Iyipada imọ tun wa ninu bawo ni aiṣedeede cache ṣe n ṣiṣẹ. Akole Alailẹgbẹ sọ gbogbo ipele ti o wa ni isalẹ eyikeyi ilana ti o yipada. BuildKit tọpa awọn hashes akoonu ni titẹ sii kọọkan, nitorinaa yiyipada asọye ni Dockerfile kan ko fẹ kuro titẹsi kaṣe kan ti o duro fun ọgbọn iṣẹju ti akopọ. Nigbati kaṣe kikọ rẹ jẹ iyatọ laarin iṣẹju marun ati idasi iṣẹju ogoji-iṣẹju kan fun ẹgbẹ imọ-ẹrọ rẹ, deede yii ṣe pataki pupọ ju bi o ti le dabi lakoko.
Opo-Platform Kọ: Aṣẹ Kan, Gbogbo Iṣẹ ọna
BuildKit's docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 . ṣe agbejade awọn aworan ti o ṣetan iṣelọpọ mẹta ni afiwe lati ẹbẹ kikọ kan. Agbara yii ti di pataki bi ile-iṣẹ naa ṣe n yipada si ARM - Awọn iṣẹlẹ AWS Graviton3 nigbagbogbo n pese 40% iṣẹ ṣiṣe idiyele ti o dara julọ lori awọn iṣẹ ṣiṣe bii iṣẹ wẹẹbu ati sisẹ data, ati Apple Silicon ti ṣe ARM ẹrọ idagbasoke aiyipada fun awọn miliọnu awọn onimọ-ẹrọ.
Iye iṣowo to wulo nibi jẹ iwọnwọn. Ẹgbẹ kan ti n ṣiṣẹ awọn apoti 200 lori awọn apẹẹrẹ AWS Graviton ni $ 0.04 fun wakati vCPU ni ibamu si apẹẹrẹ x86 deede ni $ 0.056 fun wakati vCPU-fipamọ ni aijọju $ 11,520 lododun fun awọn vCPU 100 - ni mimọ lati yiyan faaji to tọ. Ṣiṣe yiyan yẹn ni iraye laisi igbiyanju atunlo jẹ deede iru iṣapeye amayederun ti o sanwo fun ararẹ lẹsẹkẹsẹ.
Iṣakoso asiri Laisi jijo sinu Awọn fẹlẹfẹlẹ Aworan
Ọkan ninu awọn ẹya BuildKit ti a ko mọriri julọ ni API awọn aṣiri rẹ. Akole Docker Ayebaye ko ni ọna mimọ lati kọja awọn iwe-ẹri sinu kikọ laisi awọn iwe-ẹri yẹn ti o le pari ni ipele aworan kan. Awọn olupilẹṣẹ ṣiṣẹ ni ayika eyi pẹlu awọn agbeko ipele pupọ,
BuildKit's --aṣiri asia gbe data ifura sinu agbegbe kikọ bi ọna ọna faili igba diẹ ti o wa nikan fun iye akoko pato RUN --mount=type=asiri,id=npmrc cat /run/asiri/npmrc> ~/.npmrc && npm fi sori ẹrọ n fun ilana ṣiṣe ni iraye si awọn iwe-ẹri npm ikọkọ laisi awọn iwe-ẹri wọnyẹn ti o han nigbagbogbo ni aworan ikẹhin tabi Layer agbedemeji eyikeyi. Apẹrẹ kanna n ṣiṣẹ fun awọn iwe-ẹri PyPI, awọn eto Maven, awọn bọtini SSH fun awọn ibi ipamọ Git ikọkọ, ati eyikeyi ohun elo ifarabalẹ miiran ti ilana kikọ rẹ nilo.
Kaṣe Awọn okeere: Ṣiṣe Awọn Pipeline CI Ni Sare h2>
Awọn opo gigun ti CI wa nibiti iṣẹ ṣiṣe ṣe pataki julọ ati nibiti iriri kikọ Docker aiyipada ti jẹ irora pupọ julọ ni itan-akọọlẹ. Awọn aṣaju CI tuntun ni igbagbogbo bẹrẹ pẹlu awọn caches ofo, afipamo pe gbogbo ṣiṣe opo gigun ti epo n ṣe akopọ ohun gbogbo lati ibere. Fun iṣẹ Java kan pẹlu awọn ọgọọgọrun ti awọn igbẹkẹle Maven, iṣẹ akanṣe Rust kan, tabi ohun elo Python pẹlu awọn amugbooro abinibi ti o wuwo, eyi tumọ si awọn akoko kikọ ni iwọn awọn iṣẹju mẹwa ju iṣẹju-aaya lọ. Iye owo iṣowo ti CI ti o lọra jẹ pupọju - idinku igbohunsafẹfẹ imuṣiṣẹ, awọn iyipo esi gigun, ati awọn onimọ-ẹrọ ti o joko laišišẹ ti nduro fun awọn opo gigun ti epo lati pari ṣaaju ki wọn le dapọ ati tẹsiwaju.
Ẹya okeere kaṣe ti BuildKit yanju eyi pẹlu awọn ifihan kaṣe ti o le okeere. Lilo --cache-to type=registry,ref=myregistry/myapp:cacheati --cache-from type=registry,ref=myregistry/myapp:cache, BuildKit titari aworan kaṣe alaye kan si iforukọsilẹ lẹhin kikọ kọọkan ati fa a ni atẹle. Kaṣe naa jẹ adirẹsi akoonu, nitorinaa awọn ipele ti o yipada nitootọ nikan ni a tun gba. Awọn ẹgbẹ ti nlo ilana yii ni Awọn iṣe GitHub, GitLab CI, ati CircleCI nigbagbogbo ge awọn akoko opo gigun ti epo lati iṣẹju mẹẹdogun si labẹ mẹta lori awọn ṣiṣe atẹle. Iwe ti ara GitHub lori Docker to ti ni ilọsiwaju kọ ṣiṣiṣẹsẹhin ṣe iṣeduro apẹrẹ yii fun idi eyi ni deede.
Itumọ ti o yara ju ni eyi ti iwọ ko ni lati ṣiṣẹ lẹẹkansi. BuildKit's Layered, eto kaṣe akoonu ti a koju akoonu kii ṣe iyara awọn agbero - o jẹ ki gbogbo imọran ti “kọ” ni ijafafa, titan akopọ ti o tun ṣe sinu iyatọ ti o pọ si ti deede ohun ti o yipada.
Awọn okeere kaṣe tun ṣepọ mọ pẹlu awọn iṣan-iṣẹ idagbasoke ti o da lori ẹka. O le tunto opo gigun ti epo CI rẹ lati ṣubu pada lati kaṣe ẹka kan pato si kaṣe ẹka akọkọ nigbati ko si kaṣe ẹka, afipamo pe awọn ẹka tuntun ni anfani lẹsẹkẹsẹ lati kaṣe gbona ti o ṣajọpọ nipasẹ laini idagbasoke akọkọ rẹ. Awọn onimọ-ẹrọ gba esi ni iyara lati ifarabalẹ akọkọ wọn lori ẹka tuntun dipo iduro nipasẹ ijiya-ibẹrẹ tutu.
💡 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: Ilé Kọjá Dockerfiles h2>
Boya agbara ti o kere julọ ti BuildKit ni pe Dockerfiles jẹ ọna kika titẹ sii kan ti o ṣeeṣe — kii ṣe ọkan nikan. BuildKit ni faaji iwaju ti o le pluggable ti o fun laaye awọn ede itumọ ti aṣa ati awọn ọna kika patapata. Iwaju iwaju jẹ itọkasi nipasẹ ilana # syntax= ni oke ti faili kikọ rẹ, eyiti o sọ fun BuildKit lati fa aworan iwaju kan pato ki o lo lati ṣe itupalẹ ati ṣiṣẹ iyoku faili naa.
Itumọ faaji yii ti mu ọpọlọpọ awọn iṣẹ akanṣe ṣiṣẹ. Isopọpọ Buildpacks gba BuildKit laaye lati kọ awọn aworan eiyan lati koodu orisun ohun elo laisi eyikeyi Dockerfile rara - o ṣe awari ede naa, yan awọn aworan ipilẹ ti o yẹ, ati pe o ṣajọpọ apoti ti o ṣetan fun iṣelọpọ laifọwọyi. HPC ati awọn agbegbe iširo imọ-jinlẹ ti lo awọn iwaju aṣa lati ṣapejuwe awọn ile-iṣẹ ni awọn ede pato-ašẹ ti o ṣajọ silẹ si aṣoju LLB inu ti BuildKit (Low-Level). Awọn docker/dockerfile: labs awọn adanwo iwaju syntax pẹlu awọn ẹya bii atilẹyin heredoc, --nẹtiwọọki iṣakoso fun itọnisọna, ati awọn itọni kaṣe imudara ṣaaju ki wọn to de ni iduroṣinṣin Dockerfile syntax.
Provenance ati SBOM: Ilé fun Post-SolarWinds World h2>
Aabo ipese software ti gbe lati ibakcdun imọ-jinlẹ si pataki ipele igbimọ lẹhin irufin SolarWinds ni 2020 ati ailagbara Log4Shell ni 2021. Aṣẹ Alase ti ijọba AMẸRIKA 14028 lori cybersecurity, ti a funni ni Oṣu Karun ọdun 2021, ti paṣẹ iwe-aṣẹ sọfitiwia awọn ohun elo fun awọn alagbaṣe ijọba apapo. Awọn ijẹri idaniloju ti BuildKit ati awọn ẹya iran SBOM jẹ idahun taara si ilana ati ala-ilẹ aabo.
Pẹlu
Iṣiṣan iṣẹ ṣiṣe ti o wulo eyi jẹ ki o dabi eyi:
- Olugbese titari koodu; Opopona CI nfa kikọ BuildKit pẹlu iṣẹ ṣiṣe.
- BuildKit ṣe ipilẹṣẹ SBOM ti o fowo si tito akojọ gbogbo awọn paati ati awọn ẹya wọn.
- SBOM ti jẹ atẹjade si iforukọsilẹ apoti lẹgbẹẹ ifihan aworan.
- Awọn oluṣakoso gbigba wọle ninu iṣupọ Kubernetes jẹri ẹri ti o daju ṣaaju gbigba gbigba imuṣiṣẹ.
- Awọn ọlọjẹ ailagbara beere SBOM lati ṣe idanimọ awọn aworan ti o kan nigbati awọn CVE tuntun ba ti ṣafihan.
Awọn ẹgbẹ ti o ṣe imuse opo gigun ti epo ni kikun le dahun si awọn ifitonileti ailagbara ni awọn wakati ju awọn ọjọ lọ, nitori wọn ni kongẹ, maapu ẹrọ-ṣewe kika ti gbogbo paati ni gbogbo apoti ti nṣiṣẹ. Fun awọn iṣowo bii Mewayz ti o ṣepọ jinlẹ sinu ṣiṣan iṣẹ ṣiṣe ti awọn alabara - isanwo isanwo ṣiṣe, iṣakoso data ọkọ oju-omi kekere, awọn iwe-iṣiro ṣiṣe - agbara lati ṣafihan lile kan, pq ipese išidii jẹ ohun pataki ṣaaju fun awọn ibaraẹnisọrọ tita ile-iṣẹ, kii ṣe ohun ti o wuyi lati ni.
Bibẹrẹ: Lati Awọn Kọ Aiyipada si Awọn Pipeline To ti ni ilọsiwaju
BuildKit ti nṣiṣẹ tẹlẹ ni agbegbe Docker rẹ ti o ba nlo ẹya aipẹ kan — Docker 23.0 ati lẹhinna mu u ṣiṣẹ nipasẹ aiyipada. Igbesẹ iṣe akọkọ fun ọpọlọpọ awọn ẹgbẹ n mu ohun itanna Docker Buildx ṣiṣẹ, eyiti o ṣafihan ẹya kikun ti BuildKit ti a ṣeto nipasẹ aṣẹ labẹ aṣẹ docker buildx. Ṣiṣe docker buildx ṣẹda --loṣeto apẹẹrẹ Akole BuildKit pẹlu agbara diẹ sii ju awakọ aiyipada lọ. Lati ibẹ, isọdọmọ ti ilọsiwaju ti awọn ẹya ilọsiwaju jẹ oye dipo igbiyanju lati gba ohun gbogbo ni ẹẹkan.
Ọna isọdọmọ ti o ni oye fun ẹgbẹ kan lọwọlọwọ ti n ṣe ipilẹ
Ẹkọ ti o jinlẹ ti BuildKit jẹ nipa kikọ mọọmọ. Boya o n gbe eiyan kan fun microservice kan, aaye ipari ẹkọ ikẹkọ ẹrọ, tabi pẹpẹ ti o nipọn bii Mewayz's suite ti awọn modulu iṣowo 207, ilana kikọ kii ṣe ilana ti o yara nipasẹ ọna lati lọ si imuṣiṣẹ - o jẹ ohun elo imọ-ẹrọ ti o ṣe afihan didara, iduro aabo, ati idagbasoke iṣẹ ṣiṣe ti ohun gbogbo ti o gbe jade ninu rẹ. BuildKit fun ọ ni awọn irinṣẹ lati jẹ ki ohun-ọṣọ yẹn dara julọ. Ibeere naa jẹ boya o gba akoko lati lo wọn.
Awọn ibeere Nigbagbogbo
Kini BuildKit ati bawo ni o ṣe yatọ si eto kikọ Docker Ayebaye?
BuildKit jẹ ẹrọ igbekalẹ iran-tẹle Docker, ti a ṣe ni Docker 18.09 ati pe o ṣe aiyipada ni Docker 23.0. Ko dabi olupilẹṣẹ Ayebaye, BuildKit ṣe atilẹyin ipaniyan Layer ti o jọra, awọn ilana caching ilọsiwaju, iṣagbesori awọn aṣiri, ati awọn ipilẹ-ọna ẹrọ agbelebu. O ṣe itọju ilana kikọ bi aworan acyclic ti a darí (DAG), ti n muu ṣe ipinnu igbẹkẹle ijafafa ati awọn akoko kikọ ni iyara pupọ fun eka, awọn faili Docker-ipele pupọ.
Ṣe Mo nilo lati fi sori ẹrọ ohunkohun afikun lati bẹrẹ lilo BuildKit pẹlu Docker?
Ko si fifi sori ẹrọ ni afikun ti o ba n ṣiṣẹ Docker 23.0 tabi nigbamii - BuildKit ti ṣiṣẹ nipasẹ aiyipada. Lori awọn ẹya ti ogbo, o le muu ṣiṣẹ nipa tito iyipada ayika DOCKER_BUILDKIT=1 ṣaaju ṣiṣe awọn aṣẹ kikọ rẹ. Fun awọn ọran lilo ilọsiwaju bii awọn kaṣe ikole latọna jijin tabi awọn ipilẹ-ọpọlọpọ, o le fẹ lati tunto apẹẹrẹ Akole Buildx ti o yasọtọ nipa lilo docker buildx create.
Njẹ a le lo BuildKit lati kọ awọn ohun-ọṣọ ti o kọja awọn aworan apoti ti o ṣe deede bi?
Bẹẹni, ati pe eyi jẹ ọkan ninu awọn agbara ti a ko mọriri julọ ti BuildKit. Lilo awọn iha iwaju aṣa ati asia
Bawo ni BuildKit ṣe baamu si pẹpẹ DevOps ti o gbooro lẹgbẹẹ awọn irinṣẹ bii Mewayz?
BuildKit n ṣe itọju ipele ipele kekere, ṣugbọn awọn ẹgbẹ idagbasoke ode oni tun nilo lati ṣakoso awọn iṣan-iṣẹ iṣowo, ifijiṣẹ alabara, ati awọn ilana ṣiṣe. Awọn iru ẹrọ bii Mewayz — OS iṣowo-module 207 kan ti o bẹrẹ ni $19/mo — ṣe afikun ohun elo amayederun nipasẹ ibora apa iṣiṣẹ ti awọn iṣowo sọfitiwia. Pipọpọ awọn opo gigun ti o munadoko ti o ni agbara nipasẹ BuildKit pẹlu ipilẹ gbogbo-ni-ọkan gẹgẹbi Mewayz fun awọn ẹgbẹ ni akopọ pipe lati inu ohun elo koodu si ifijiṣẹ alabara.
We use cookies to improve your experience and analyze site traffic. Cookie Policy