Python Flask i Docker

Python Flask I Docker



I denne tutorial skal vi lære, hvordan man containeriserer en Python Flask-applikation ved hjælp af Docker.

Containerization er en episk funktion, der giver os udviklerne mulighed for at pakke en applikation sammen med de nødvendige afhængigheder i en enkelt enhed. Vi kan derefter flytte containeren og implementere applikationen på tværs af miljøer uden at skulle bekymre os om kompatibilitet.

Hvad er Flask?

Flask er en minimalistisk og let mikrowebramme til Python. Det giver den væsentlige funktion og de biblioteker, der er nødvendige for at bygge den lette webapplikation ved hjælp af Python-sproget.







Flask følger Web Server Gateway Interface eller WSGI-standarden, som giver os mulighed for at inkorporere et minimalistisk design med et fleksibelt mønster, der kan håndtere HTTP-anmodningen og andre funktioner. For eksempel understøtter Flask webfunktionerne såsom routing, databaser og mere.



Forudsætninger:

For at følge med i koden og kommandoerne i denne vejledning, skal du sikre dig, at du har følgende værktøjer:



  1. Installeret Python-fortolker på din maskine (version 3.11 og nyere anbefales)
  2. Installeret Docker-motor på værtsmaskinen (version 23 og nyere anbefales)
  3. En teksteditor eller IDE efter eget valg

Med de givne krav opfyldt, kan vi fortsætte med denne vejledning.





Opret Flask-applikationen

Som du kan gætte, er det første trin at oprette Python-applikationen, som vi ønsker at containerisere. For vores tilfælde demonstrerer vi det med en minimalistisk app, der udskriver 'hej verden'.

Opret en ny mappe til at gemme kildekoden til dit projekt og opret en Python-fil med navnet 'app.py'.



Rediger 'app.py' med din foretrukne teksteditor eller IDE, og tilføj koden til din applikation som følger:

fra kolbe importere Kolbe

app = Kolbe ( __navn__ )
@ app. rute ( '/' )
def Hej Verden ( ) :
Vend tilbage '

Hej verden!

'

Opret en Dockerfile

Dernæst skal vi definere instruktionerne, der tillader os at pakke applikationen som et Docker-billede. Vi bruger Dockerfilen, som indeholder alle instruktioner og værktøjer til opsætning af billedet.

I samme mappe som 'hello.py', opret en ny fil kaldet 'Dockerfile' uden udvidelse. Kør følgende kommando:

$ tryk på Dockerfile

Rediger filen og tilføj koden som følger:

Brug det officielle Python-billede som basisbillede.

FRA python: 3.12 -rc-slank
WORKDIR /app
KOPI . /app
# Installer Flask
KØR pip installation --no-cache- du -r krav. txt
# Udsæt port 5000 til Flask-appen
UDSÆTTE 5000
# kør Flask-applikationen
CMD [ 'python' , 'app.py' ]

Den tidligere Dockerfile udfører følgende handlinger:

  • Bruger det officielle Python 3.12 slanke billede som basisbillede
  • Indstiller arbejdsmappen inde i beholderen til '/app'
  • Kopierer indholdet af projektmappen til containeren
  • Installerer Flask og andre afhængigheder ved at køre 'pip install' ved hjælp af filen 'requirements.txt'.
  • Afslører port 5000 for Flask-applikationen
  • Definerer kommandoen til at køre Flask-applikationen

Sørg for, at filen 'requirements.txt' findes i projektbiblioteket, og tilføj indholdet af filen som vist i følgende:

Kolbe == 2.3.3

I dette tilfælde angiver vi, at vi ønsker at installere Flask version 2.3.3.

Byg Docker-billedet

Nu hvor vi har Flask-applikationen og Dockerfile klar, kan vi fortsætte og bygge billedet med følgende kommando:

docker build -t flask-docker-app .

Sørg for, at du er i projektmappen, før du kører den forrige kommando. Du kan erstatte flask-docker-appen med det navn, du ønsker at tildele dit billede.

Kør Docker Container

Med Docker-billedet bygget kan vi køre containeren baseret på billedet ved at bruge kommandoen 'docker run' som følger:

docker run -s 5000 : 5000 flask-docker-app

Dette skulle oprette en container og kortlægge port 5000 fra containeren til port 5000 på værtssystemet.

Når den er udført, skal du åbne browseren og navigere til http://localhost:5000 .

Du bør se 'Hej, verden!' besked fra Flask-applikationen.

Konklusion

I denne tutorial lærte du, hvordan du containeriserer en simpel Python Flask-applikation ved hjælp af Docker.