Riješeno: primjer dockerfile-a

Posljednje ažuriranje: 09/11/2023

Glavni problem vezan za primjer Dockerfile-a je taj što možda nije prikladan za sve slučajeve upotrebe. Dockerfile je skup instrukcija koje se koristi za izgradnju slike i može se prilagoditi različitim aplikacijama i okruženjima. Kao takav, primjer Dockerfile-a možda neće sadržavati potrebna uputstva za vašu specifičnu aplikaciju ili okruženje. Osim toga, sintaksa Dockerfile-a može varirati ovisno o verziji Docker-a koja se koristi, tako da primjer iz jedne verzije možda neće raditi u drugoj.

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” – Ova linija specificira osnovnu sliku koja će se koristiti za Docker kontejner, u ovom slučaju Python verzija 3.7.

2. “WORKDIR /app” – Ova linija postavlja radni direktorij kontejnera na “/app”.

3. “COPY requirements.txt .” – Ova linija kopira datoteku pod nazivom “requirements.txt” s lokalnog stroja u trenutni radni direktorij kontejnera (u ovom slučaju “/app”).

4. “RUN pip install -r requirements.txt” – Ova linija pokreće naredbu unutar kontejnera koja koristi pip za instaliranje svih paketa navedenih u zahtjevima.txt u okruženje kontejnera.

5.”COPY . .” – Ova linija kopira sve datoteke i mape s vašeg lokalnog stroja u trenutni radni direktorij vašeg kontejnera (u ovom slučaju “/app”).

6.”EXPOSE 5000″ – Ova linija otkriva port 5000 na vašem Docker kontejneru, omogućavajući mu pristup iz vanjskih izvora kao što je web pretraživač ili druge aplikacije koje rade na vašem računaru ili mreži.

7.”ENTRYPOINT [“python”]” – Ova linija postavlja ulaznu tačku za vaš Docker kontejner, što znači da će kada ga pokrenete automatski izvršiti bilo koju komandu koja je ovdje navedena (u ovom slučaju, pokretanje Pythona).

8.”CMD [“app.py”]” – Konačno, ova linija specificira koju naredbu treba izvršiti kada pokrenete svoj Docker kontejner (u ovom slučaju, pokrećete datoteku koja se zove app.py).

O Docker platformi

Docker je platforma otvorenog koda za izgradnju, isporuku i pokretanje aplikacija. Koristi tehnologiju kontejnera za pakovanje aplikacija u izolovane kontejnere tako da se mogu brzo primeniti na bilo kom sistemu. Docker omogućava programerima da brzo kreiraju i implementiraju aplikacije na siguran i efikasan način.

Python je popularan programski jezik koji koriste mnogi programeri za kreiranje web aplikacija, projekata nauke o podacima, modela mašinskog učenja i još mnogo toga. Uz Docker, Python programeri mogu lako upakovati svoj kod u kontejnere koji su prenosivi na različite sisteme i okruženja. Ovo olakšava razvoj i implementaciju Python aplikacija na bilo kojoj platformi ili provajderu oblaka bez brige o problemima kompatibilnosti ili zavisnosti. Dodatno, Docker pruža jednostavan način za upravljanje više verzija Python biblioteka i okvira sa svojim ugrađenim registrom slika. Ovo omogućava programerima da brzo prelaze između različitih verzija iste biblioteke ili okvira bez potrebe da ih ručno instaliraju na svaki sistem koji koriste.

Šta je Dockerfile

Dockerfile je tekstualni dokument koji sadrži sve naredbe koje korisnik može pozvati u komandnoj liniji da sastavi sliku. Koristi se za kreiranje Docker slike, koja se zatim može koristiti za kreiranje kontejnera. Dockerfile obično sadrži upute o tome kako izgraditi i pokrenuti aplikaciju, kao i sve druge ovisnosti koje su joj potrebne da bi ispravno radila. Napisan je pomoću programskog jezika Python i može se koristiti sa bilo kojom od popularnih tehnologija kontejnera kao što su Kubernetes ili Docker Swarm.

Kako da napišem Dockerfile

Dockerfile je tekstualni dokument koji sadrži sve naredbe koje korisnik može pozvati u komandnoj liniji da sastavi sliku. To je u osnovi skup uputstava koja govori Dockeru kako da napravi vašu sliku.

Da biste napisali Dockerfile u Python-u, morate započeti navođenjem osnovne slike koju želite koristiti. Ovo se može učiniti pomoću instrukcije FROM. Na primjer, ako želite koristiti Ubuntu kao svoju osnovnu sliku, napisali biste:

IZ ubuntu: najnovije

Zatim morate instalirati sve potrebne pakete i biblioteke za vašu aplikaciju. Ovo se može učiniti pomoću instrukcije RUN i apt-get ili pip komandi. Na primjer, ako želite da instalirate Flask i njegove zavisnosti, napisali biste:

POKRENI apt-get update && apt-get install -y python3 python3-pip && pip3 install flask

Nakon što su svi vaši paketi instalirani, vrijeme je da kopirate bilo koji izvorni kod ili konfiguracijske datoteke u kontejner. Ovo se može učiniti korištenjem instrukcije COPY nakon koje slijedi staza izvorne datoteke i odredišna staza unutar kontejnera. Na primjer:

KOPIRAJ ./app /app/

Konačno, vrijeme je da odredimo koja naredba treba biti izvršena kada se ovaj kontejner pokreće sa docker run . Ovo se radi pomoću CMD instrukcije praćene bilo kojom komandom koja treba da se izvrši prilikom pokretanja ovog kontejnera. Na primjer:

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

Slični postovi: