Uru:
- Ikike ịghọta akpa na echiche Dockerfile, ntuziaka bụ isi na mgbagha oyi, yana inwe ọgụgụ isi na-emepụta Dockerfile dị njikere.
- Ikike iji belata nha onyonyo na ịbawanye ọsọ nke ntinye na nchekwa site na iji wuo ọtụtụ ọkwa yana obere onyonyo ntọala
- Ikike itinye ụkpụrụ nchekwa nke ịghara itinye ihe nzuzo dị na onyonyo a, na-eji onye ọrụ na-enweghị ikike na-agba ya kama mgbọrọgwụ, na inyocha onyonyo a.
Ahịrịokwu ahụ "Ọ na-agba na kọmputa m" bụ ahịrịokwu kachasị ọnụ na akụkọ ihe mere eme nke ngwanrọ. Otu koodu ahụ na-agbawa na sava dị iche n'ihi ụdị ọba akwụkwọ dị iche iche. Teknụzụ igbe na-edozi nsogbu a kpọmkwem: ọ na-etinye ngwa gị na ihe niile ọ chọrọ iji rụọ ọrụ - ọba akwụkwọ, oge ịgba ọsọ, ntọala - n'ime otu ngwugwu enwere ike. Nke a ngwugwu na-arụ ọrụ kpọmkwem otu ebe niile. Ngwá ọrụ akpa kachasị ewu ewu bụ Docker.
A na-akpọ nkọwa nke akpa Dockerfile: ọ bụ faịlụ ederede na-akọwa n'usoro nke isi ihe oyiyi gị ga-esi malite, faịlụ ndị a ga-e depụtaghachi, na iwu ga-agba ọsọ. A na-emepụta ihe oyiyi site na nhazi a; Mgbe ihe oyiyi na-agba ọsọ, ọ na-aghọ akpa. AI nwere nkà nke ukwuu n'ịde Dockerfile na - nke kachasị mkpa - ibelata na ichekwa ya. Mana ọ bụ ọrụ gị ịghọta ihe usoro nri emepụtara na-eme yana ebe ọ nwere ike ịgbapụta ihe nzuzo.
Ntuziaka bụ isi nke Dockerfile
Iji nyochaa Dockerfile, ị kwesịrị ịma ntuziaka ndị a:
- 'SITE': Na-ahọpụta onyonyo ntọala (dịka ọmụmaatụ Python: 3.12-slim). Nke a bụ ebe nha na nchekwa nke ihe onyonyo a si abịa.
- 'WORKDIR': Na-akọwapụta ndekọ aha ọrụ.
- 'Copy' / 'ADD': Nṅomi faịlụ na onyonyo a.
- `RUN`: Na-eme iwu n'oge a na-arụ ọrụ (dịka ọmụmaatụ na-etinye ndabere). RUN ọ bụla na-emepụta oyi akwa ọhụrụ.
- 'ENV': Na-akọwapụta mgbanwe gburugburu ebe obibi.
- 'EXPOSE': Akwụkwọ nke ọdụ ụgbọ mmiri na-ege ntị.
- 'CMD' / 'ENTRYPOINT': Na-ekpebi iwu nke ga-agba ọsọ mgbe akpa ahụ malitere.
Echiche dị oke egwu bụ oyi akwa: Docker na-echekwa ntụziaka ọ bụla dị ka oyi akwa. Ọ bụrụ na ị na-etinye usoro na-agbanwe ugboro ugboro na njedebe, ọkwa ndị na-adịghị agbanwe agbanwe ga-esi na cache pụta ma ihe owuwu ahụ ga-agba ọsọ ọsọ.
Ndụmọdụ: The nnukwu levers abụọ maka ibelata nha oyiyi bụ: (1) ịhọrọ obere ihe oyiyi dị ka slim ma ọ bụ alpine; (2) na-eji multi-stage-ewu - ịhapụ ngwá ọrụ ewu n'otu ọkwa na naanị ibuga ngwaahịa ikpeazụ ka ọ dị mkpa. AI nwere ike mejuputa ihe abụọ a mgbe ọ bụla ọ chọrọ.
Gịnị mere obere ihe oyiyi ahụ ji dị mkpa? N'ihi na nha onyonyo abụghị naanị okwu diski. Ihe oyiyi buru ibu na-ewe ogologo oge iji dọpụta ya na ntinye nke ọ bụla, na-ewekwu ohere na ndekọ aha, na-ebelata mmalite nke Pods ọhụrụ ka ọ na-eme ka ọ dị elu, na n'ihi na ọ nwere ọtụtụ ngwugwu, ọ na-enye nnukwu agha elu-ya bụ, oghere maka onye na-awakpo iji mee ihe. Iji ihe oyiyi 100 MB kama ịbụ ihe oyiyi 1 GB; Ọ na-ebelata oge ntinye, na-ebelata ego ma na-abawanye nchekwa. Ịkwalite Dockerfile na-aghọrọ uru atọ ndị a n'otu oge. Kwupụta n'ụzọ doro anya ebumnuche "onyinyo ikpeazụ kacha nta" mgbe ị na-arịọ AI maka Dockerfile kachasị mma; ya mere, ọ na-ebute ụzọ ikewa usoro nchịkọta na ịtụfu ngwugwu na-adịghị mkpa.
Nzọụkwụ site na nzọụkwụ: Ịmepụta na ịkwalite Dockerfile na AI
- Kọwaa ngwa ahụ. Asụsụ, ụdị, iwu ntinye, ọdụ ụgbọ mmiri ege ntị.
- Mee ka emepụtara nke mbụ. Rịọ Dockerfile dị mfe na-arụ ọrụ.
- Bulie ya elu. Rịọ otu AI maka iwulite ọtụtụ ọkwa, obere onyonyo ntọala yana nkwalite usoro oyi akwa.
- Lelee nche. Ọ bụ ihe nzuzo agbakwunyere, ọ na-agba ọsọ dị ka mgbọrọgwụ, enwere ngwaọrụ ọ bụla na-adịghị mkpa?
- Mee ma tụọ nha. Hụ nha ya na onyonyo docker ka emechara docker.
- Nyochaa. Lelee maka adịghị ike ama ama site na iji nyocha nrigbu dị ka docker scout ma ọ bụ obere ihe.
Nchekwa: ihe egwu ndị nwere akpa
A na-eleghara nchekwa akpa anya ngwa ngwa. Iwu atọ:
- Etinyela Nzuzo na onyonyo a. Ahịrị dị ka ENV API_KEY=... ma ọ bụ COPY. Onye ọ bụla natara ihe onyonyo a nwere ike ịgụ ya. Nye ihe nzuzo na oge ojiri gaa dị ka mgbanwe gburugburu ebe obibi ma ọ bụ site na vault.
- Na-agba ọsọ dị ka mgbọrọgwụ. Site na ndabara, arịa na-agba ọsọ dị ka mgbọrọgwụ; Ihe oghere nwere ike ịghọ ụzọ mgbapụ site na akpa ahụ. Gaa na onye ọrụ na-enwetaghị ikike nwere ntuziaka USER.
- Onyonyo ntọala pere mpe na nke ọhụrụ. Onyonyo agbajiri agbaji na-adị nwayọ ma nwee adịghị ike karịa. Họrọ slim/alpine, dozie ụdị ahụ (ejila : kacha ọhụrụ).
Akpachara anya: Ọbụlagodi na ị na-eji ihe nzuzo na RUN wee hichapụ ya, ọ na-adị na etiti ma enwere ike ịgụghachi ya site na akụkọ docker. Ọ bụrụ na achọrọ ihe nzuzo mgbe a na-ewu ụlọ, jiri usoro nzuzo Docker, ọ bụghị ENV/COPY.
Tebụlụ mmetụta kachasị mma
oru
Kedu ihe na-eme
Mmetụta ahụkarị
slim/alpine isi onyonyo
Na-atụfu ngwugwu ndị na-adịghị mkpa
900MB → 120MB
Nrụpụta ọtụtụ ọkwa
Agụnyere ihe nrụpụta
700MB → 90MB
.dockerịpụ
Agụnyeghị faịlụ ndị na-adịghị mkpa na nrụpụta
Mee ngwa ngwa, obere okirikiri
Nhazi ọkwa
Na-abawanye iti mkpu
Mee 5 min → 40 sk
Ndozi ụdị (:15)
Nkwughachi + nchekwa
Na-egbochi mmebi mberede
Obere ikpe atọ
Ihe onyonyo 1 - 1.1 GB belatara na 95 MB. Onyonyo Node.js otu otu bụ 1.1 GB; Nkwanye nke ọ bụla were nkeji. Ha gwara AI "welite nke a site na iji multi-stage build and alpine". AI kewapụrụ usoro nchịkọta ma kwaga naanị faịlụ ndị emepụtara na onyonyo dị mkpa; Ihe si na ya pụta bụ 95 MB, oge nrụnye ji otu ụzọ n'ụzọ atọ belata.
Ikpe 2 - lie nzuzo jidere. Otu injinia hụrụ ahịrị ENV DB_PASSWORD=prod_nzuzo na Dockerfile nke YZ mepụtara. AI agbakwunyela paswọọdụ n'ime onyonyo ka ọ "na-arụ ọrụ". Injinia wepụrụ nke a ma gbanwee ya ka ọ bụrụ ịgụ paswọọdụ sitere na mgbanwe gburugburu ebe obibi na oge ojiri gaa. Ma ọ bụghị ya, onye ọ bụla weghaara foto a nwere ike ịgụ paswọọdụ.
Ikpe 3 - ihe ize ndụ nke mgbapụ mgbọrọgwụ. Ngwá ọrụ nyocha kwuru na onyonyo nke AI mepụtara na-agba ọsọ dị ka mgbọrọgwụ ma nwee adịghị ike dị egwu. Ndị otu ahụ gbakwunyere USER appuser wee kwanye onyonyo ntọala na ụdị dị ugbu a; ehichapụrụ nyocha. Ihe nkuzi: nyochaa onyonyo ọ bụla tupu ibipụta ya ma kpughee ya nye ndị ọrụ enweghị ikike.
Ndebiri anọ enwere ike iṅomi
1) Na-emepụta Dockerfile kachasị mma:
Dee Dockerfile dị njikere mmepụta maka ngwa [LANGUAGE/FRAMEWORK]. Ntuziaka: - Jiri ihe nrụpụta ọtụtụ ọkwa; mee ka ihe oyiyi ikpeazụ bụrụ nke kacha nta.- Isi ihe oyiyi bụ slim / alpine na mbipute a na-edozi (adịghị eji ": ọhụrụ") .- Gbaa akpa ahụ na onye ọrụ na-enweghị ikike, Ọ BỤGHỊ mgbọrọgwụ.- Ọ dịghị mgbe etinyere ihe nzuzo na oyiyi ahụ; Chere maka mgbanwe gburugburu ebe obibi na oge ojiri gaa. - Tinye .dockerignore ntụnye. Iwu ntinye: [X], ọdụ ụgbọ mmiri ege ntị: [Y].
2) Hazie Dockerfile dị ugbu a:
Lelee Dockerfile a ka ibelata wee mee ngwa ngwa. Na-atụ aro ihe mgbanwe n'usoro oyi akwa, multi-phase ewu, isi oyiyi na ejighi oru ngwugwu; Detuo nha nha/mmetụta ọsọ echere ngbanwe nke ọ bụla. Dockerfile: [CONTENT]
3) Nyochaa nchekwa:
Lelee Dockerfile a maka nchekwa: enwere ihe nzuzo ọ bụla agbakwunyere, ndị ọrụ mgbọrọgwụ, ụdị edoghị anya, ngwaọrụ ndị na-adịghị mkpa, onyonyo ntọala ochie? Depụta ihe nchoputa ahụ n'usoro dị mkpa yana mmezi ọ bụla. Dockerfile: [CONTENT]
4) Mepụta njehie:
Kedu ihe kpatara njehie docker a na otu esi edozi ya? Nye m ihe kpatara ya na ngwọta ya na obere mgbanwe. Emela ezigbo uru ebe ị na-ahụ Nzuzo, jiri ebe nchekwa. Njehie: [LOG] Dockerfile: [CONTENT]
Ngwa ngwa adịghị ike / Ike siri ike
Adịghị ike: "Dee Dockerfile maka ngwa Node m."
Nsonaazụ: nnukwu onyogho isi, onye ọrụ mgbọrọgwụ, otu ogbo, ikekwe enweghị ike na nzuzo; Ihe mmepụta na-enweghị echiche maka nha na nchekwa.
siri ike: "Dee Dockerfile dị njikere maka ngwa Node 20: multi-stage build, node: 20-alpine base image (ụdị edozi), na-eji USER na-enweghị ikike, ntinye nzuzo, na-ege ntị na ọdụ ụgbọ mmiri 3000, nbanye node dist/server.js. Na-atụkwa aro .dockerignore."
Ọdịiche: ụdị ngwa ngwa nke abụọ na-enye usoro njikarịcha, iwu nchekwa na iwu nbanye; Ihe mmepụta ahụ na-aghọ obere, nchekwa na ngwa ngwa.
Mmejọ ndị nkịtị
- Iji `ENV`/`Copy` tinye ihe nzuzo ahụ n'ime onyonyo a. Ọ na-anọgide n'ígwé ma gụọ ya azụ.
- Na-agba ọsọ dị ka mgbọrọgwụ. Ịwụfe ntuziaka USER bụ nnukwu ihe egwu nchekwa.
- Iji `: kacha ọhụrụ`. Ọ na-emepụta mwube na-enweghị atụ na ọgba aghara ndị a na-atụghị anya ya.
- Na-amafe ihe nrụpụta ọtụtụ ọkwa. Ngwa mkpokọta na-akpachapụ foto ikpeazụ na-enweghị isi.
- Edela '.dockerignore'. Agụnyere nnukwu akwụkwọ ndekọ aha dị ka .git na node_modules n'ime ihe nrụpụta ahụ.
- Na-ebipụta onyonyo a na-enweghị nyocha ya. Na-emepụta adịghị ike ama ama n'amaghị ha.
Na nchịkọta
Akpa na-etinye ngwa ahụ n'ime ngwugwu ndị na-ebugharị na-arụ ọrụ otu ebe niile; Ntụziaka bụ Dockerfile. AI dị ike n'ịmepụta Dockerfiles dị njikere yana kachasị mma - mana ịkwesịrị ịchọrọ n'ụzọ doro anya ihe nrụpụta ọtụtụ, obere onyonyo ntọala, enweghị ndị ọrụ na-akwadoghị, na enweghị nzuzo. Mbelata nha onyonyo na-eme ka ntinye ngwa ngwa; Ịbanyeghị ihe nzuzo ahụ, ịgbanarị mgbọrọgwụ, na nyocha ihe onyonyo a na-eme ka nchekwa. Ọ bụ ọrụ gị ịchọpụta ihe usoro nri ọ bụla na-eme yana ebe ọ na-agbapụta.
Ọrụ ngwa
Họrọ ngwa dị mfe. Mee ka AI wepụta Dockerfile yana ndebiri “ọgbọ Dockerfile kachasị”. Mgbe ahụ: (1) Were template "Security check" nyochaa ihe nzuzo agbakwunyere na mgbọrọgwụ; (2) ọ bụrụ na ọ ga-ekwe omume, wuo docker wee jiri onyonyo docker tụọ nha; (3) rịba ama nke usoro ga-akacha dị irè n'ibelata ihe oyiyi dị ka nzọụkwụ ọzọ.
ndetu
- [ ] Agbakwunyere m ụdị asụsụ/framework, iwu ntinye, na ọdụ ụgbọ mmiri na ngwa ngwa m.
- [] Enweghị ihe nzuzo agbakwunyere na Dockerfile; na-atụ anya na nzuzo oge ojiri gaa.
- [] Akpa na-eji USER na-enwetaghị ikike, ọ bụghị mgbọrọgwụ.
- [] Foto dị n'okpuru dị obere (slim/alpine) ma edoziri ụdị ya (enweghị: ọhụrụ).
- [ ] M na-eji multi-stage-ewu na .dockerignore.
- [ ] Eji m nchọta adịghị ike enyocha onyonyo a.