Containerization är en episk funktion som låter oss utvecklare paketera en applikation tillsammans med de nödvändiga beroenden till en enda enhet. Vi kan sedan flytta behållaren och distribuera applikationen över miljöer utan att behöva oroa oss för kompatibilitet.
Vad är Flask?
Flask är ett minimalistiskt och lätt mikrowebbramverk för Python. Den tillhandahåller de väsentliga funktionerna och biblioteken som krävs för att bygga den lätta webbapplikationen med Python-språket.
Flask följer Web Server Gateway Interface eller WSGI-standarden som tillåter oss att införliva en minimalistisk design med ett flexibelt mönster som kan hantera HTTP-förfrågan och andra funktioner. Till exempel stöder Flask webbfunktioner som routing, databaser och mer.
Förutsättningar:
För att följa med koden och kommandona som tillhandahålls i denna handledning, se till att du har följande verktyg:
- Installerad Python-tolk på din maskin (version 3.11 och högre rekommenderas)
- Installerad Docker-motor på värddatorn (version 23 och högre rekommenderas)
- En textredigerare eller IDE som du väljer
Med de givna kraven uppfyllda kan vi fortsätta med denna handledning.
Skapa Flask-applikationen
Som du kan gissa är det första steget att skapa Python-applikationen som vi vill behålla. För vårt fall demonstrerar vi det med en minimalistisk app som skriver ut 'hej världen'.
Skapa en ny katalog för att lagra källkoden för ditt projekt och skapa en Python-fil med namnet 'app.py'.
Redigera 'app.py' med din favorittextredigerare eller IDE och lägg till koden för din applikation enligt följande:
från flaska importera Flaskaapp = Flaska ( __namn__ )
@ app. rutt ( '/' )
def Hej världen ( ) :
lämna tillbaka '
Hej världen!
'
Skapa en dockerfil
Därefter måste vi definiera instruktionerna som tillåter oss att paketera applikationen som en Docker-bild. Vi använder Dockerfilen som innehåller alla instruktioner och verktyg för att ställa in bilden.
I samma katalog som 'hello.py', skapa en ny fil som heter 'Dockerfile' utan förlängning. Kör följande kommando:
$ tryck på DockerfileRedigera filen och lägg till koden enligt följande:
Använd den officiella Python-bilden som basbild.
FRÅN python: 3.12 -rc-smalWORKDIR /app
KOPIERA . /app
# Installera kolven
KÖR pip-installation --no-cache- du -r krav. Text
# Exponera port 5000 för Flask-appen
ÖVERSIKT 5 000
# kör Flask-applikationen
CMD [ 'pytonorm' , 'app.py' ]
Den tidigare Dockerfilen utför följande operationer:
- Använder den officiella Python 3.12 slimmade bilden som basbild
- Ställer in arbetskatalogen inuti behållaren till '/app'
- Kopierar innehållet i projektkatalogen till behållaren
- Installerar Flask och alla andra beroenden genom att köra 'pip install' med hjälp av filen 'requirements.txt'.
- Exponerar port 5000 för Flask-applikationen
- Definierar kommandot för att köra Flask-applikationen
Se till att filen 'requirements.txt' finns i projektkatalogen och lägg till innehållet i filen som visas i följande:
Flaska == 2.3.3I det här fallet anger vi att vi vill installera Flask version 2.3.3.
Bygg Docker-bilden
Nu när vi har Flask-applikationen och Dockerfile redo, kan vi fortsätta och bygga bilden med följande kommando:
docker build -t flask-docker-app .Se till att du är i projektkatalogen innan du kör föregående kommando. Du kan ersätta flask-docker-appen med det namn som du vill tilldela din bild.
Kör Docker Container
Med Docker-bilden byggd kan vi köra behållaren baserat på bilden med kommandot 'docker run' enligt följande:
docker run -s 5 000 : 5 000 flask-docker-appDetta bör skapa en container och mappa port 5000 från containern till port 5000 på värdsystemet.
När den har körts öppnar du webbläsaren och navigerar till http://localhost:5000 .
Du borde se 'Hej världen!' meddelande från Flask-applikationen.
Slutsats
I den här handledningen lärde du dig hur man containeriserar en enkel Python Flask-applikation med Docker.