Ìomhaighean Tiny Docker a bha a’ creidsinn annta fhèin *

[iomradh air an sgeulachd sìthiche chloinne Ameireaganach "The Little Engine That Could" - approx. sreath]*

Ìomhaighean Tiny Docker a bha a’ creidsinn annta fhèin *

Mar a chruthaicheas tu ìomhaighean beaga Docker gu fèin-ghluasadach airson na feumalachdan agad

Obsession neo-àbhaisteach

Airson na mìosan no dhà a dh ’fhalbh, tha mi air a bhith trom le cho beag sa dh’ fhaodas ìomhaigh Docker a bhith agus a bheil an tagradh fhathast a ’ruith?

Tha mi a 'tuigsinn, tha am beachd neònach.

Mus tèid mi a-steach don mhion-fhiosrachadh agus na feartan teicnigeach, bu mhath leam mìneachadh carson a chuir an duilgheadas seo dragh cho mòr orm, agus mar a tha e a’ cur dragh ort.

Carson a tha meud cudromach

Le bhith a’ lughdachadh susbaint ìomhaigh an Docker, bidh sinn mar sin a’ lughdachadh liosta nan so-leòntachd. A bharrachd air an sin, bidh sinn a’ dèanamh na h-ìomhaighean nas glaine, leis nach eil annta ach na tha a dhìth gus tagraidhean a ruith.

Tha aon bhuannachd bheag eile ann - tha dealbhan air an luchdachadh sìos beagan nas luaithe, ach, nam bheachd-sa, chan eil seo cho cudromach.

Thoir an aire: Ma tha dragh ort mu mheud, tha coltas nan Alpach fhèin beag agus is dòcha gum bi iad iomchaidh dhut.

Dealbhan gun mhothachadh

Pròiseact Distroless a’ tabhann taghadh de dh’ ìomhaighean bunaiteach “gun stad”, chan eil manaidsearan pacaid, sligean agus goireasan eile ann a tha thu cleachdte ri bhith a’ faicinn air an loidhne-àithne. Mar thoradh air an sin, cleachd manaidsearan pacaid mar pip и apt chan obraich:

FROM gcr.io/distroless/python3
RUN  pip3 install numpy

Dockerfile a’ cleachdadh ìomhaigh Python 3 gun stad

Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM gcr.io/distroless/python3
 ---> 556d570d5c53
Step 2/2 : RUN  pip3 install numpy
 ---> Running in dbfe5623f125
/bin/sh: 1: pip3: not found

Chan eil Pip san dealbh

Mar as trice bidh an duilgheadas seo air a rèiteachadh le togail ioma-ìre:

FROM python:3 as builder
RUN  pip3 install numpy

FROM gcr.io/distroless/python3
COPY --from=builder /usr/local/lib/python3.7/site-packages /usr/local/lib/python3.5/

Co-chruinneachadh ioma-ìre

Is e an toradh ìomhaigh de mheud 130MB. Nach ro dhona! Airson coimeas: tha an ìomhaigh Python bunaiteach le cuideam 929MB, agus am fear “nas taine” (3,7-slim) - 179MB, dealbh alpach (3,7-alpine) 98,6MB, agus is e 50,9MB an ìomhaigh gun bhonn a thathar a’ cleachdadh san eisimpleir.

Tha e cothromach a chomharrachadh gu bheil sinn san eisimpleir roimhe a’ dèanamh lethbhreac de eòlaire iomlan /usr/local/lib/python3.7/site-packages, a dh’ fhaodadh a bhith a’ toirt a-steach eisimeileachd nach fheum sinn. Ged a tha e soilleir gu bheil eadar-dhealachadh meud nan ìomhaighean bunaiteach Python uile ag atharrachadh.

Aig àm sgrìobhaidh, chan eil Google distroless a’ toirt taic do dh’ iomadh ìomhaigh: tha Java agus Python fhathast aig ìre deuchainneach, agus chan eil Python ann ach airson 2,7 agus 3,5.

Dealbhan beaga

Air ais chun an obsession agam le bhith a’ cruthachadh ìomhaighean beaga.

San fharsaingeachd, bha mi airson faicinn mar a tha ìomhaighean gun stad air an togail. Bidh am pròiseact gun stad a’ cleachdadh inneal togail Google bazel. Ach, thug e tòrr obair dhut a bhith a’ stàladh Bazel agus a’ sgrìobhadh na h-ìomhaighean agad fhèin (agus a bhith onarach, tha ath-thòiseachadh a’ chuibhle spòrsail agus foghlaim). Bha mi airson cruthachadh ìomhaighean nas lugha a dhèanamh nas sìmplidhe: bu chòir an gnìomh airson ìomhaigh a chruthachadh a bhith gu math sìmplidh, banail. Gus nach bi faidhlichean rèiteachaidh ann dhut, dìreach aon loidhne sa chonsail: просто собрать образ для <приложение>.

Mar sin, ma tha thu airson na h-ìomhaighean agad fhèin a chruthachadh, fios agad: tha ìomhaigh docker cho sònraichte ann, scratch. Is e ìomhaigh “falamh” a th’ ann an Scratch, chan eil faidhlichean ann, ged a tha cuideam ann gu bunaiteach - wow! — 77 byte.

FROM scratch

Dealbh sgrìobadh

Is e am beachd air ìomhaigh sgrìobadh gun urrainn dhut eisimeileachd sam bith bhon inneal aoigheachd a chopaigeadh a-steach agus an cleachdadh am broinn Dockerfile (tha seo coltach ri bhith gan lethbhreac gu apt agus stàlaich e bhon toiseach), no nas fhaide air adhart nuair a thèid ìomhaigh an Docker a thoirt gu buil. Leigidh seo leat smachd a chumail air susbaint an Docker container, agus mar sin smachd a chumail air meud na h-ìomhaigh gu tur.

A-nis feumaidh sinn dòigh air choireigin a 'cruinneachadh nan eisimeileachd sin. Innealan mar a tha ann mar-thà apt leigeil leat pasganan a luchdachadh sìos, ach tha iad ceangailte ris an inneal gnàthach agus, às deidh a h-uile càil, chan eil iad a’ toirt taic do Windows no MacOS.

Mar sin chuir mi romham an inneal agam fhèin a thogail a thogadh gu fèin-ghluasadach ìomhaigh bhunaiteach den mheud as lugha a dh’ fhaodadh a bhith ann agus a ruitheas cuideachd tagradh sam bith. Chleachd mi pasganan Ubuntu / Debian, rinn mi taghadh (faighinn pacaidean gu dìreach bho na stòran) agus lorg mi na h-eisimeileachd aca gu cunbhalach. Bha còir aig a’ phrògram an dreach seasmhach as ùire den phasgan a luchdachadh sìos gu fèin-ghluasadach, a’ lughdachadh chunnartan tèarainteachd cho mòr ‘s a ghabhas.

Thug mi ainm air an inneal fetchy, oir tha e a' lorg agus a' toirt... na tha a dhìth [bhon Bheurla “fetch”, “thoir” - approx. lain]. Bidh an inneal ag obair tro eadar-aghaidh loidhne-àithne, ach aig an aon àm a’ tabhann API.

Gus dealbh a chruinneachadh a 'cleachdadh fetchy (gabhaidh sinn dealbh Python an turas seo), cha leig thu leas ach an CLI a chleachdadh mar seo: fetchy dockerize python. Is dòcha gun tèid iarraidh ort an siostam-obrachaidh targaid agus an t-ainm còd air sgàth fetchy an-dràsta a’ cleachdadh pacaidean stèidhichte air Debian agus Ubuntu a-mhàin.

A-nis faodaidh tu taghadh dè na eisimeileachd nach eil a dhìth idir (anns a’ cho-theacsa againn) agus cuir às dhaibh. Mar eisimpleir, tha Python an urra ri perl, ged a tha e ag obair gu math às aonais Perl air a chuir a-steach.

Toraidhean

Ìomhaigh Python air a chruthachadh a’ cleachdadh an àithne fetchy dockerize python3.5 cuideam dìreach 35MB (tha mi nas cinnteach gum faodar a dhèanamh eadhon nas aotroime san àm ri teachd). Tha e a ’tionndadh a-mach gun deach againn air 15 WW eile a ghearradh dheth bhon ìomhaigh gun stad.

Chì thu na h-ìomhaighean gu lèir a chaidh a chruinneachadh gu ruige seo an seo.

Pròiseact - an seo.

Ma tha feartan a dhìth ort, dìreach cruthaich iarrtas - bidh mi toilichte do chuideachadh :) Fiù ‘s barrachd, tha mi an-dràsta ag obair air amalachadh manaidsearan pacaid eile a-steach gu fetchy, gus nach bi feum air togalaichean ioma-ìre.

Source: www.habr.com

Cuir beachd ann