An warware: dockerfile misali

Babban matsalar da ke da alaƙa da misalin Dockerfile ita ce ƙila ba ta dace da duk yanayin amfani ba. Dockerfile wani tsari ne na umarnin da ake amfani da shi don gina hoto, kuma ana iya keɓance shi don aikace-aikace da mahalli daban-daban. Don haka, misali Dockerfile bazai ƙunshi mahimman umarnin don takamaiman aikace-aikacenku ko muhallin ku ba. Bugu da ƙari, tsarin haɗin Dockerfile na iya bambanta dangane da nau'in Docker da ake amfani da shi, don haka misali daga sigar ɗaya bazai yi aiki a wani ba.

FROM python:3.7

WORKDIR /app

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

1. "DAGA python: 3.7" - Wannan layin yana ƙayyade hoton tushe don amfani da kwandon Docker, a cikin wannan yanayin Python version 3.7.

2. "WORKDIR / app" - Wannan layin yana saita kundin aiki na akwati zuwa "/ app".

3. "COPY bukatun.txt." - Wannan layin yana kwafin fayil mai suna "requirements.txt" daga na'ura na gida zuwa cikin kundin aiki na yanzu na akwati (a cikin wannan yanayin "/ app").

4. "RUN pip install -r needs.txt" - Wannan layin yana gudanar da umarni a cikin akwati wanda ke amfani da pip don shigar da duk fakitin da aka jera a cikin buƙatun.txt cikin yanayin akwati.

5.” KWAFI . .” - Wannan layin yana kwafin duk fayiloli da manyan fayiloli daga injin ɗin ku zuwa cikin kundin tsarin aiki na yanzu (a wannan yanayin "/ app").

6."EXPOSE 5000″ - Wannan layin yana fallasa tashar jiragen ruwa 5000 akan kwandon Docker ɗin ku, yana ba da damar isa gare ta daga kafofin waje kamar mai binciken gidan yanar gizo ko wasu aikace-aikacen da ke gudana akan kwamfutarka ko hanyar sadarwa.

7." ENTRYPOINT ["python"]" - Wannan layin yana saita wurin shigarwa don akwati na Docker, ma'ana cewa lokacin da kake gudanar da shi, zai aiwatar da duk wani umarni da aka ƙayyade a nan (a wannan yanayin, yana gudana Python).

8."CMD ["app.py"]" - A ƙarshe, wannan layin yana ƙayyadaddun umarni da ya kamata a aiwatar lokacin da kuke gudanar da akwati na Docker (a wannan yanayin, yana gudanar da fayil mai suna app.py).

Game da dandalin Docker

Docker dandamali ne na buɗe tushen don gini, jigilar kaya, da aikace-aikace masu gudana. Yana amfani da fasahar kwantena don haɗa aikace-aikacen a cikin keɓaɓɓen kwantena domin a iya tura su cikin sauri akan kowane tsari. Docker yana bawa masu haɓakawa damar ƙirƙira da tura aikace-aikace cikin sauri da inganci.

Python sanannen yaren shirye-shirye ne da masu haɓakawa da yawa ke amfani da shi don ƙirƙirar aikace-aikacen yanar gizo, ayyukan kimiyyar bayanai, ƙirar koyon injin, da ƙari. Tare da Docker, masu haɓaka Python za su iya haɗa lambar su cikin sauƙi cikin kwantena waɗanda ke ɗauka a cikin tsari da mahalli daban-daban. Wannan yana sauƙaƙa haɓakawa da tura aikace-aikacen Python akan kowane dandamali ko mai samar da gajimare ba tare da damuwa game da batutuwan dacewa ko dogaro ba. Bugu da ƙari, Docker yana ba da hanya mai sauƙi don sarrafa nau'ikan ɗakunan karatu na Python da yawa tare da ginanniyar rajistar hoto. Wannan yana ba masu haɓaka damar canzawa da sauri tsakanin nau'ikan labura iri ɗaya ko tsarin ba tare da sanya su da hannu akan kowane tsarin da suke amfani da shi ba.

Menene Dockerfile

Dockerfile takaddar rubutu ce wacce ta ƙunshi duk umarnin da mai amfani zai iya kira akan layin umarni don haɗa hoto. Ana amfani da shi don ƙirƙirar hoton Docker, wanda za'a iya amfani dashi don ƙirƙirar kwantena. Dockerfile yawanci yana ƙunshe da umarni kan yadda ake ginawa da gudanar da aikace-aikacen, da kuma duk wani abin dogaro da yake buƙata don yin aiki yadda ya kamata. An rubuta ta ta amfani da yaren shirye-shiryen Python kuma ana iya amfani da shi tare da kowane shahararrun fasahar kwantena kamar Kubernetes ko Docker Swarm.

Ta yaya zan rubuta Dockerfile

Dockerfile takaddar rubutu ce wacce ta ƙunshi duk umarnin da mai amfani zai iya kira akan layin umarni don haɗa hoto. Ainihin saitin umarni ne wanda ke gaya wa Docker yadda ake gina hoton ku.

Don rubuta Dockerfile a cikin Python, kuna buƙatar farawa ta hanyar tantance tushen hoton da kuke son amfani da shi. Ana iya yin wannan ta amfani da umarnin FROM. Misali, idan kuna son amfani da Ubuntu azaman hoton tushe, zaku rubuta:

DAGA ubuntu: latest

Na gaba, kuna buƙatar shigar da kowane fakiti da ɗakunan karatu masu mahimmanci don aikace-aikacenku. Ana iya yin wannan ta amfani da umarnin RUN da apt-samun ko umarnin pip. Misali, idan kuna son shigar da Flask da abubuwan dogaronsa, zaku rubuta:

RUN dace-samun sabuntawa && dace-samun shigar -y python3 python3-pip && pip3 shigar flask

Da zarar an shigar da duk fakitinku, lokaci ya yi da za a kwafi kan kowane lambar tushe ko fayilolin daidaitawa a cikin akwati. Ana iya yin wannan ta amfani da umarnin COPY da hanyar fayil ɗin tushe da hanyar zuwa cikin akwati. Misali:

COPY ./app /app/

A ƙarshe, lokaci ya yi da za a ƙayyade wane umarni ya kamata a aiwatar yayin gudanar da wannan akwati tare da docker run . Ana yin wannan tare da umarnin CMD wanda kowane umarni ya kamata a aiwatar yayin gudanar da wannan akwati. Misali:

CMD ["python3", "/app/main.py"]

Shafi posts:

Leave a Comment