Isonjululwe: umzekelo we-dockerfile

Ingxaki ephambili enxulumene nomzekelo weDockerfile kukuba ayinakulungela zonke iimeko zokusetyenziswa. I-Dockerfile yiseti yemiyalelo esetyenziselwa ukwakha umfanekiso, kwaye inokwenziwa ngokwezifiso kwizicelo ezahlukeneyo kunye neemeko. Ngokunjalo, umzekelo iDockerfile ayinakuqulatha imiyalelo eyimfuneko yesicelo sakho esithile okanye okusingqongileyo. Ukongeza, i-syntax ye-Dockerfile inokwahluka ngokuxhomekeke kwinguqulelo ye-Docker esetyenziswayo, ngoko ke umzekelo osuka kwenye inguqulelo usenokungasebenzi kwenye.

FROM python:3.7

WORKDIR /app

COPY requirements.txt . 
RUN pip install -r requirements.txt 
COPY . . 
EXPOSE 5000 
ENTRYPOINT ["python"] 
CMD ["app.py"]

1. "UKUSUKA kwi-python: 3.7" - Lo mgca uchaza umfanekiso osisiseko oza kuwusebenzisa kwisitya seDocker, kule meko iPython version 3.7.

2. "UMSEBENZI WOKUSEBENZA / i-app" - Lo mgca ubeka uluhlu olusebenzayo lwesikhongozeli "/ app".

3. “KOPI iimfuno.txt . - Lo mgca ukopisha ifayile ebizwa ngokuthi "requirements.txt" ukusuka kumatshini wendawo ukuya kulawulo lwangoku lwesikhongozeli (kule meko "/ app").

4. “RUN pip install -r needs.txt” – Lo mgca uqhuba umyalelo ngaphakathi kwesingxobo osebenzisa ipip ukufaka zonke iipakethe ezidweliswe kwiimfuno.txt kwindawo engqonge isikhongozeli.

5.”KOPIA . .” Lo mgca ukopisha zonke iifayile kunye neefolda kumatshini wakho wasekhaya ukuya kulawulo lwangoku lwesikhongozeli sakho (kule meko "/ app").

6."EXPOSE 5000″ - Lo mgca uveza izibuko 5000 kwisikhongozeli sakho seDocker, uyivumela ukuba ifikeleleke kwimithombo yangaphandle efana nesikhangeli sewebhu okanye ezinye iinkqubo ezisebenza kwikhompyuter yakho okanye kwinethiwekhi.

7.”ENTRYPOINT [“python”]” – Lo mgca ubeka indawo yokungena kwisikhongozeli sakho seDocker, oku kuthetha ukuba xa usenza, siya kwenza ngokuzenzekelayo nawuphi na umyalelo ochaziweyo apha (kule meko, usebenzisa iPython).

8.”CMD [“app.py”]” – Okokugqibela, lo mgca uxela ukuba ngowuphi umyalelo ekufuneka uphunyezwe xa uqhuba isikhongozeli sakho seDocker (kule meko, usebenzisa ifayile ebizwa ngokuba yi app.py).

Malunga neqonga leDocker

I-Docker liqonga elivulekileyo lomthombo wokwakha, ukuthumela, kunye nokuqhuba izicelo. Isebenzisa iteknoloji yeekhonteyina ukupakisha usetyenziso kwizikhongozeli ezizimeleyo ukuze zikwazi ukusasazwa ngokukhawuleza kuyo nayiphi na inkqubo. I-Docker yenza ukuba abaphuhlisi benze ngokukhawuleza kwaye basebenzise usetyenziso ngendlela ekhuselekileyo nefanelekileyo.

I-Python lulwimi lwenkqubo oludumileyo olusetyenziswa ngabaphuhlisi abaninzi ekudaleni usetyenziso lwewebhu, iiprojekthi zesayensi yedatha, iimodeli zokufunda ngomatshini, kunye nokunye. NgeDocker, abaphuhlisi bePython banokupakisha ngokulula ikhowudi yabo kwizikhongozelo eziphathwayo kwiinkqubo ezahlukeneyo kunye nokusingqongileyo. Oku kwenza kube lula ukuphuhlisa kunye nokuhambisa izicelo zePython kulo naliphi na iqonga okanye umboneleli welifu ngaphandle kokukhathazeka malunga nemiba yokuhambelana okanye ukuxhomekeka. Ukongeza, iDocker ibonelela ngendlela elula yokulawula iinguqulelo ezininzi zeelayibrari zePython kunye nesakhelo kunye nerejista yemifanekiso eyakhelweyo. Oku kuvumela abaphuhlisi ukuba batshintshe ngokukhawuleza phakathi kweenguqulelo ezahlukeneyo zelayibrari enye okanye isakhelo ngaphandle kokuzifaka ngesandla kwinkqubo nganye abayisebenzisayo.

Yintoni iDockerfile

I-Dockerfile luxwebhu olubhaliweyo oluqulethe yonke imiyalelo umsebenzisi anokuyifowunela kumgca womyalelo ukudibanisa umfanekiso. Isetyenziselwa ukwenza umfanekiso weDocker, onokuthi usetyenziswe ukwenza iziqulathi. I-Dockerfile iqulethe imiyalelo yendlela yokwakha kunye nokuqhuba isicelo, kunye naluphi na olunye uxhomekeko olufunekayo ukuze luqhube kakuhle. Ibhalwe kusetyenziswa ulwimi lwenkqubo yePython kwaye inokusetyenziswa nayo nayiphi na itekhnoloji yesikhongozeli eyaziwayo njengeKubernetes okanye iDocker Swarm.

Ndiyibhala njani iDockerfile

I-Dockerfile luxwebhu olubhaliweyo oluqulethe yonke imiyalelo umsebenzisi anokuyifowunela kumgca womyalelo ukudibanisa umfanekiso. Ngokwesiseko yiseti yemiyalelo exelela iDocker indlela yokwenza umfanekiso wakho.

Ukubhala iDockerfile kwiPython, kufuneka uqale ngokuchaza umfanekiso osisiseko ofuna ukuwusebenzisa. Oku kunokwenziwa ngokusebenzisa i FROM umyalelo. Umzekelo, ukuba ufuna ukusebenzisa Ubuntu njengomfanekiso wakho wesiseko, ungabhala:

FROM ubuntu:latest

Okulandelayo, kufuneka ufakele naziphi na iipakethe eziyimfuneko kunye namathala eencwadi kwisicelo sakho. Oku kunokwenziwa ngokusebenzisa imiyalelo ye-RUN kunye ne-apt-fumana okanye imiyalelo yepayipi. Umzekelo, ukuba ufuna ukufaka iFlask kunye nokuxhomekeka kwayo, ungabhala:

RUN apt-fumana uhlaziyo && apt-fumana ukufaka -y python3 python3-pip && pip3 yokufaka iflaski

Nje ukuba zonke iipakethe zakho zifakiwe, lixesha lokukopa phezu kwayo nayiphi na ikhowudi yomthombo okanye iifayile zoqwalaselo kwisikhongozeli. Oku kunokwenziwa ngokusebenzisa i-COPY yomyalelo olandelwa ngumthombo wefayile yendlela kunye nendlela yokufikela ngaphakathi kwesikhongozeli. Umzekelo:

KOPIA ./app/app/

Okokugqibela, lixesha lokuchaza ukuba ngowuphi umyalelo ekufuneka uphunyezwe xa uqhuba esi sikhongozeli nge docker run . Oku kwenziwa ngomyalelo weCMD olandelwa nguwuphi na umyalelo ekufuneka uphunyezwe xa kuqhutywa esi singxobo. Umzekelo:

CMD [“python3”, “/app/main.py”]

Izithuba ezihambelanayo:

Shiya Comment