La ĉefa problemo rilata al ekzemplo de Dockerfile estas, ke ĝi eble ne taŭgas por ĉiuj uzkazoj. Dockerfile estas aro de instrukcioj uzataj por konstrui bildon, kaj ĝi povas esti personecigita por malsamaj aplikoj kaj medioj. Kiel tia, ekzemplo Dockerfile eble ne enhavas la necesajn instrukciojn por via specifa aplikaĵo aŭ medio. Aldone, la sintakso de Dockerfile povas varii depende de la versio de Docker uzata, do ekzemplo de unu versio eble ne funkcias en alia.
FROM python:3.7 WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . EXPOSE 5000 ENTRYPOINT ["python"] CMD ["app.py"]
1. "FROM python:3.7" - Ĉi tiu linio specifas la bazan bildon por uzi por la Docker-ujo, ĉi-kaze Python-versio 3.7.
2. "WORKDIR /app" - Ĉi tiu linio fiksas la labordosierujon de la ujo al "/app".
3. "KOPIAJ postulojn.txt ." – Ĉi tiu linio kopias dosieron nomitan "requirements.txt" de la loka maŝino en la nunan labordosierujon de la ujo (ĉi-kaze "/app").
4. “RUN pip install -r requirements.txt” – Ĉi tiu linio rulas komandon ene de la ujo, kiu uzas pip por instali ĉiujn pakaĵojn listigitajn en requirements.txt en la medion de la ujo.
5.” KOPIU . .” – Ĉi tiu linio kopias ĉiujn dosierojn kaj dosierujojn de via loka maŝino en la nunan labordosierujon de via ujo (ĉi-kaze "/app").
6.”EXPOSE 5000″ – Ĉi tiu linio elmontras la havenon 5000 sur via Docker-ujo, permesante ĝin aliri de eksteraj fontoj kiel tTT-legilo aŭ aliaj aplikaĵoj kurantaj en via komputilo aŭ reto.
7.”ENTRYPOINT [“python”]” – Ĉi tiu linio starigas enirpunkton por via Docker-ujo, tio signifas, ke kiam vi rulas ĝin, ĝi aŭtomate plenumos ĉian ajn komandon specifita ĉi tie (en ĉi tiu kazo, kurante Python).
8."CMD ["app.py"]" - Fine, ĉi tiu linio specifas, kian komandon oni devas ekzekuti kiam vi rulas vian Docker-ujon (en ĉi tiu kazo, ruliĝas dosiero nomata app.py).
Pri Docker-platformo
Docker estas malfermfonta platformo por konstrui, sendi kaj funkcii aplikaĵojn. Ĝi uzas ujoteknologion por paki aplikojn en izolitaj ujoj tiel ke ili povas esti rapide deplojitaj sur ajna sistemo. Docker ebligas al programistoj rapide krei kaj disfaldi aplikaĵojn en sekura kaj efika maniero.
Python estas populara programlingvo uzata de multaj programistoj por krei TTT-aplikaĵojn, datumsciencajn projektojn, maŝinlernajn modelojn kaj pli. Kun Docker, Python-programistoj povas facile paki sian kodon en ujojn porteblajn tra malsamaj sistemoj kaj medioj. Ĉi tio faciligas disvolvi kaj disfaldi Python-aplikojn sur ajna platformo aŭ nuba provizanto sen zorgi pri kongruaj problemoj aŭ dependecoj. Aldone, Docker provizas facilan manieron administri plurajn versiojn de Python-bibliotekoj kaj kadroj kun sia enkonstruita bildregistro. Ĉi tio permesas al programistoj rapide ŝanĝi inter malsamaj versioj de la sama biblioteko aŭ kadro sen devi permane instali ilin sur ĉiu sistemo, kiun ili uzas.
Kio estas Dockerfile
Dockerfile estas teksta dokumento, kiu enhavas ĉiujn komandojn, kiujn uzanto povus voki sur la komandlinio por kunmeti bildon. Ĝi estas uzata por krei Docker-bildon, kiu tiam povas esti uzata por krei ujojn. Dockerfile kutime enhavas instrukciojn pri kiel konstrui kaj ruli aplikaĵon, same kiel ajnajn aliajn dependecojn kiujn ĝi bezonas por funkcii ĝuste. Ĝi estas skribita uzante la programlingvon Python kaj povas esti uzata kun iu ajn el la popularaj ujteknologioj kiel Kubernetes aŭ Docker Swarm.
Kiel mi skribas Dockerfile
Dockerfile estas teksta dokumento, kiu enhavas ĉiujn komandojn, kiujn uzanto povus voki sur la komandlinio por kunmeti bildon. Ĝi estas esence aro da instrukcioj, kiuj diras al Docker kiel konstrui vian bildon.
Por skribi Dockerfile en Python, vi devas komenci specifante la bazan bildon, kiun vi volas uzi. Ĉi tio povas esti farita uzante la FROM-instrukcion. Ekzemple, se vi volus uzi Ubuntu kiel vian bazan bildon, vi skribus:
DE ubuntu:latest
Poste, vi devas instali iujn ajn necesajn pakaĵojn kaj bibliotekojn por via aplikaĵo. Ĉi tio povas esti farita uzante la RUN-instrukcion kaj apt-get aŭ pip-komandojn. Ekzemple, se vi volus instali Flask kaj ĝiajn dependecojn, vi skribus:
RUN apt-get update && apt-get install -y python3 python3-pip && pip3 instal flasko
Post kiam ĉiuj viaj pakaĵoj estas instalitaj, estas tempo kopii ajnan fontkodon aŭ agordajn dosierojn en la ujon. Ĉi tio povas esti farita uzante la COPY-instrukcion sekvitan de la fontdosiervojo kaj celvojo ene de la ujo. Ekzemple:
KOPIU ./app /app/
Fine, estas tempo specifi, kiun komandon oni devas ekzekuti kiam oni rulu ĉi tiun ujon per docker run . Ĉi tio estas farita per CMD-instrukcio sekvita de kia ajn komando devus esti efektivigita dum rulado de ĉi tiu ujo. Ekzemple:
CMD ("python3", "/app/main.py"]