Python Flask v Dockeri

Python Flask V Dockeri



V tomto návode sa naučíme, ako kontajnerizovať aplikáciu Python Flask pomocou Docker.

Kontajnerizácia je epická funkcia, ktorá nám vývojárom umožňuje zbaliť aplikáciu spolu s požadovanými závislosťami do jedného celku. Potom môžeme presunúť kontajner a nasadiť aplikáciu naprieč prostrediami bez toho, aby sme sa museli starať o kompatibilitu.

Čo je Flask?

Flask je minimalistický a ľahký mikro webový rámec pre Python. Poskytuje základné funkcie a knižnice, ktoré sú potrebné na vytvorenie ľahkej webovej aplikácie pomocou jazyka Python.







Flask sa riadi štandardom Web Server Gateway Interface alebo WSGI, čo nám umožňuje začleniť minimalistický dizajn s flexibilným vzorom, ktorý dokáže spracovať požiadavku HTTP a ďalšie funkcie. Flask napríklad podporuje webové funkcie, ako je smerovanie, databázy a ďalšie.



Predpoklady:

Ak chcete postupovať podľa kódu a príkazov, ktoré sú uvedené v tomto návode, uistite sa, že máte nasledujúce nástroje:



  1. Nainštalovaný interpret Pythonu na vašom počítači (odporúča sa verzia 3.11 a vyššia)
  2. Na hostiteľskom počítači nainštalovaný Docker engine (odporúča sa verzia 23 a vyššia)
  3. Textový editor alebo IDE podľa vášho výberu

Po splnení daných požiadaviek môžeme pokračovať v tomto návode.





Vytvorte aplikáciu Flask

Ako môžete hádať, prvým krokom je vytvorenie aplikácie Python, ktorú chceme kontajnerizovať. V našom prípade to demonštrujeme pomocou minimalistickej aplikácie, ktorá vytlačí „ahoj svet“.

Vytvorte nový adresár na uloženie zdrojového kódu pre váš projekt a vytvorte súbor Python s názvom „app.py“.



Upravte súbor „app.py“ pomocou svojho obľúbeného textového editora alebo IDE a pridajte kód pre svoju aplikáciu takto:

od banke importovať Banka

aplikácie = Banka ( __názov__ )
@ aplikácie. trasu ( '/' )
def ahoj_svet ( ) :
vrátiť '

Ahoj, Svet!

'

Vytvorte Dockerfile

Ďalej musíme definovať pokyny, ktoré nám umožnia zabaliť aplikáciu ako obrázok Docker. Používame súbor Dockerfile, ktorý obsahuje všetky pokyny a nástroje na nastavenie obrazu.

V rovnakom adresári ako „hello.py“ vytvorte nový súbor s názvom „Dockerfile“ bez prípony. Spustite nasledujúci príkaz:

$ dotknite sa súboru Dockerfile

Upravte súbor a pridajte kód takto:

Ako základný obrázok použite oficiálny obrázok Pythonu.

Z pythonu: 3.12 -rc-štíhly
WORKDIR / aplikácia
KOPÍROVAŤ . /aplik
# Nainštalujte banku
SPUSTITE inštaláciu pipu --no-cache- vy -r požiadavky. TXT
# Odkryte port 5000 pre aplikáciu Flask
VYSTAVIŤ 5000
# spustite aplikáciu Flask
CMD [ 'python' , 'app.py' ]

Predchádzajúci Dockerfile vykonáva nasledujúce operácie:

  • Ako základný obrázok používa oficiálny tenký obrázok Pythonu 3.12
  • Nastaví pracovný adresár v kontajneri na „/app“
  • Skopíruje obsah adresára projektu do kontajnera
  • Nainštaluje Flask a všetky ostatné závislosti spustením „pip install“ pomocou súboru „requirements.txt“.
  • Odhaľuje port 5000 pre aplikáciu Flask
  • Definuje príkaz na spustenie aplikácie Flask

Uistite sa, že súbor „requirements.txt“ existuje v adresári projektu a pridajte obsah súboru, ako je znázornené v nasledujúcom texte:

Banka == 2.3.3

V tomto prípade špecifikujeme, že chceme nainštalovať Flask verzie 2.3.3.

Vytvorte obrázok Docker

Teraz, keď máme pripravenú aplikáciu Flask a Dockerfile, môžeme pokračovať a vytvoriť obrázok pomocou nasledujúceho príkazu:

docker build -t flask-docker-app .

Pred spustením predchádzajúceho príkazu sa uistite, že ste v adresári projektu. Aplikáciu flask-docker-app môžete nahradiť názvom, ktorý chcete priradiť k obrázku.

Spustite kontajner Docker

S vytvoreným obrazom Docker môžeme spustiť kontajner založený na obrázku pomocou príkazu „docker run“ takto:

docker spustiť -p 5000 : 5000 flask-docker-app

Toto by malo vytvoriť kontajner a namapovať port 5000 z kontajnera na port 5000 v hostiteľskom systéme.

Po spustení otvorte prehliadač a prejdite na http://localhost:5000 .

Mali by ste vidieť 'Ahoj, svet!' správy z aplikácie Flask.

Záver

V tomto návode ste sa naučili, ako kontajnerizovať jednoduchú aplikáciu Python Flask pomocou Dockera.