Olembaka jamais kosala fiddling na Dockerfile? Dockerfiles mpe bilili ya Docker ezali lolenge malamu ya kosala emballage ya app na yo mpo na ba déploiements oyo ekoki kosalelama lisusu, oyo ezali na ba conteneurs. Kasi, kokoma mpe kobatela Dockerfile ezalaka ntango nyonso ya pɛtɛɛ te, mpe esɛngaka ntango oyo ekokaki kosalelama soki te mpo na kobakisa makambo na programɛ na yo. Kota na ba Buildpacks ya Cloud Native. Ba Buildpacks ezali mpo na kobenda esika moko nionso oyo app na yo esengeli mpo na kotambola mpe kotia yango na elilingi ya Open Container Initiative (OCI) — Dockerfile esengeli te.
Mpo na ba développeurs nionso kuna libanda oyo bazali na mposa ya processus ya kotonga ba conteneurs oyo ezali facile ya kosalela mpe ekobikisa bango temps mpe mutu pasi, Cloud Native Buildpacks ekoki kozala solution oyo bazali koluka. Kotya likebi? Nakoyebisa bino makambo mosusu.
Ba Buildpacks ya Cloud Native Ezali Nini?
Na monene, buildpack ezuaka code ya application mpe ekomisaka yango runnable na nzela ya processus ya build. Na yango, na nsima, Cloud Native Buildpacks ezwaka code source ya application na yo mpe ebongoli yango na bilili ya OCI oyo ekoki kotambola, oyo ekoki kozongisama, kosalela masengi na yo mpo na bokengi ya bilili, optimisation ya performance, mpe ordre ya kotonga conteneur. Ezali lokola kozala na Dockerfile ya sikisiki oyo osengeli na yango — kaka ozali na mposa ya kokoma moko te.
Atako mingi ya ba développeurs bakoki kokoma Dockerfile, moke nde bazali ba experts soit na Docker to infrastructure. Ba apps mingi mingi ezali na Dockerfiles oyo esalemi na cobbled esika moko uta na ba fragments ya code oyo ezwami na kati ya web — mbala mingi mash-up ya Copilot, Stack Overflow, mpe ChatGPT. Mabunga ya Dockerfile ekoki komema na ba applications oyo ezali na bokengi te mpe oyo ezali kosala malamu te.
Cloud Native Buildpacks ezuaka mokumba oyo, na ndenge ya automatique esalelaka mayele ya malamu pona monoko to cadre moko na moko. Na nsima, motongi akoki kosalela motángo nyonso ya ba buildpacks , ko détecter automatiquement ba buildpacks nini esengeli mpe kosalela yango mpo na kotonga application. Tala ba buildpacks oyo constructeur ya Heroku azali ko soutenir lelo oyo:
$ pack builder inspect heroku/builder:24 Inspecting builder: heroku/builder:24 REMOTE: Description: Ubuntu 24.04 AMD64+ARM64 base image with buildpacks for .NET, Go, Java, Node.js, PHP, Python, Ruby & Scala. ... Buildpacks: ID NAME VERSION heroku/deb-packages Heroku .deb Packages 0.0.3 heroku/dotnet Heroku .NET 0.1.10 heroku/go Heroku Go 0.5.2 heroku/gradle Heroku Gradle 6.0.4 heroku/java Heroku Java 6.0.4 heroku/jvm Heroku OpenJDK 6.0.4 heroku/maven Heroku Maven 6.0.4 heroku/nodejs Heroku Node.js 3.4.5 heroku/nodejs-corepack Heroku Node.js Corepack 3.4.5 heroku/nodejs-engine Heroku Node.js Engine 3.4.5 heroku/nodejs-npm-engine Heroku Node.js npm Engine 3.4.5 heroku/nodejs-npm-install Heroku Node.js npm Install 3.4.5 heroku/nodejs-pnpm-engine Heroku Node.js pnpm Engine 3.4.5 heroku/nodejs-pnpm-install Heroku Node.js pnpm install 3.4.5 heroku/nodejs-yarn Heroku Node.js Yarn 3.4.5 heroku/php Heroku PHP 0.2.0 heroku/procfile Heroku Procfile 4.0.0 heroku/python Heroku Python 0.23.0 heroku/ruby Heroku Ruby 5.0.1 heroku/sbt Heroku sbt 6.0.4 heroku/scala Heroku Scala 6.0.4
Batongi mosusu, lokola oyo ya Paketo to Google Cloud , bamemaka mpe molɔngɔ ya ba buildpacks. Na nyonso, écosystème ya Cloud Native Buildpacks ezali kokola mpe kokola, oyo ezali kosepelisa mpo na ba développeurs!
Pona ba oyo ba mesana na Heroku, bosi bosepela na expérience ya buildpack . Na git push heroku main
, ozali na makoki ya ko déployer directement na Heroku, na Dockerfile moko te esengeli. Cloud Native Buildpacks etongaka na expérience ya Heroku buildpack, kozua oyo ezalaki kala mise en œuvre spécifique ya motekisi mpe kobongola yango na norme ya CNCF oyo ekoki kosalelama na plateforme nionso ya cloud.
Na mokuse, Cloud Native Buildpacks epesaka ba développeurs nzela ya:
- Déployer ba applications na pete koleka
- ... na ndenge ya standard sans lock-in
- ... nionso tango ya kosalela mayele ya malamu ya récipient
- ... mpe kozanga kosala ete ba développeurs ba tinker na Dockerfiles.
Salelá Makambo
Eyokani malamu mpenza, boye te? Na matomba oyo nyonso, totala mwa makambo ya sikisiki epai wapi okokaki kozwa matomba na kosalelaka Cloud Native Buildpacks.
Esika nyonso oyo okozala na mposa ya Dockerfile ezali libaku ya kosalela buildpack. Ndakisa ezali:
- Application moko ya web ya Node.js
- Microservice moko ya Python
- Application hétérogène oyo esalelaka minoko to ba cadres ebele
- Kotonga ba applications pona déploiement na ba plateformes ya cloud lokola AWS, Azure, na Heroku
Eloko moko ya koyeba ezali oyo: Alors que ba buildpacks ezali déclaratif , Dockerfiles ezali procédurale . Na buildpack, osakoli kaka que olingi application moko epesami etongami na builder to buildpack donnée. Na bokeseni, Dockerfile esengaka yo olimbola mitindo mpe molongo oyo mitindo wana esalemi mpo na kotonga application na yo. Lokola yango, ba buildpacks epesaka te na tango oyo niveau ya configurability oyo ezali na kati ya Dockerfile, yango wana ekoki kokokisa te ba besoins ya ba cas ya usage mosusu ya likolo koleka.
Yango elobami, ezali na lock-in ya motekisi te na Cloud Native Buildpacks. Batongaka kaka image ya OCI. Esengeli na personnalisation mpe ba options mingi koleka oyo ezali na buildpack? Bobele kozongisa motongi na pipeline na yo ya botongi na Dockerfile na yo mpe botongi ya elilingi ya OCI ya momesano, mpe ozali malamu mpo na kokende.
Nzela ya Botamboli ya Pete
Tosala bolandi ya mbangu ya ndenge ya kosalela Cloud Native Buildpacks.
Mpo na kobanda na ba buildpacks lokola mobongisi ya ba app, litambe na yo ya liboso esengeli kozala ya kotia esaleli ya Pack CLI . Esaleli oyo epesaka yo nzela ya kotonga application na ba buildpacks. Landa malako ya installation mpo na système d'exploitation na yo.
En plus, soki ozali na yango déjà te, okozala na besoin ya démon Docker pona constructeur atonga app na yo, pe pona yo o tambuisa image na yo. Na bisaleli oyo mibale oyo otye, ozali pene ya kobanda.
Tongela App ya Exemple
Na accès na esaleli pack
, ozali prêt ya komeka yango na kotonga application ya exemple. Nakozala kosala oyo na kati ya application Next.js. Ozali na mposa ya application ya échantillon mpo na komeka buildpack na? Tala répertoire mobimba ya ba applications ya exemple ya Next.js . Okoki mpe komeka application nyonso oyo ozali na yango na lobɔkɔ.
Soki ozali na application na yo prêt, banda na komona motongi nini esaleli ya pack epesi likanisi. Na shell na yo, kende na répertoire ya ba apps na yo mpe sala commande oyo:
$ pack builder suggest
Na installation na ngai ya Ubuntu, mpo na application na ngai Next.js, esaleli pack
epesi likanisi ya batongi oyo elandi:
Tomeka buildpack ya Heroku oyo epesami likanisi ( heroku/builder:24
). Mpo na kosalela oyo, salá etinda oyo elandi:
$ pack build my-app --builder heroku/builder:24
Ntango ya kotonga ekokesana engebene bonene ya application na yo; mpo na ngai, kotonga appli ezwaki 30 secondes. Na yango, elilingi na ngai ekómaki pene ya kokende. Tokoki kosala image na oyo elandi:
$ docker run -p 3000:3000 my-app
Résultat ezali komonana boye:
Mpe ezali bongo! Tolongi kotonga elilingi ya OCI ya application na biso Next.js — kozanga kosalela Dockerfile.
Ba Configurations ya kobakisa
Est-ce que soki esengeli o configurer eloko moko na kati ya buildpack? Mpo na yango, olingaki kosala référence na (ba) buildpack oyo eponami na motongi na yo. Ndakisa, mpo na appli na ngai Next.js, nakoki komona na ba journals ete motongi aponaki ba buildpacks mibale: nodejs-engine mpe nodejs-yarn .
Toloba que nalingi na préciser version ya fil oyo buildpack esalela. Ya liboso, nalingaki kokende na nodejs-yarn buildpack Readme , esika namoni ete nakoki ko préciser version ya yarn na fichier package.json
na ngai na clé packageManager
. Nalingaki ko modifier fichier na ngai po ezala boye:
{ "packageManager": "[email protected]" }
Uta kuna, nionso nalingaki kozala na mposa ya kosala ezali kosala pack build my-app --builder heroku/builder:24
lisusu.
Maloba ya nsuka
Cloud Native Buildpacks ezali lolenge ya sika ya kosepelisa ya kotonga bilili ya ba conteneurs mpo na ba applications na biso. Na kolongolaka mposa ya Dockerfile, basali yango mbangu koleka mpo na kozwa application na biso emballage mpe déployé. Plus, lokola batongaka ba images ya conteneur standard, lock-in ya vendeur ezali te.
Cloud Native Buildpacks ezali na aperçu na ba plateformes ebele, elingi koloba que ensemble ya ba fonctionnalités ezali léger mais ezali kokola noki. Heroku, oyo ezwi source ouverte na yango Cloud Native Buildpacks , ezali komema bango na plateforme na yango ya nkola ekoya , mpe. Nazali kozela na esengo komona lolenge nini Cloud Native Buildpacks epesaka nzela na bopanzi ya ba application ya bokengi, ya mbangu na kati ya lisanga ya plateforme ya cloud.