Come creare ed eseguire un'applicazione Flask utilizzando Docker

17 ago 2022 3 min di lettura
Come creare ed eseguire un'applicazione Flask utilizzando Docker
Indice dei contenuti

Introduzione

In questo tutorial imparerai come creare un'app Flask di base con Docker. Configura la tua app con un Dockerfile e gestisci le immagini con un processo di compilazione automatizzato.

In questo processo imparerai anche come utilizzare più ambienti virtuali Python e mantenere organizzato il tuo codice sorgente.

Cos'è Flask?

Flask è un framework Python leggero per la creazione di applicazioni web. È semplice, flessibile e pragmatico. Può essere facilmente esteso con l'uso di estensioni e plug-in. Flask può essere utilizzato per creare piccoli siti Web o applicazioni complesse su larga scala.

Flask è utilizzato da aziende come Pinterest, Twitter, Walmart e Cisco. Uno degli usi comuni di Flask è per le API REST utilizzate per interagire con altri sistemi. Le applicazioni scritte in Flask possono anche essere facilmente distribuite su un server o un cloud.

Creare un'applicazione Flask di base

Prima di poter creare un'immagine Docker con la tua applicazione, devi disporre di un'app di base che puoi eseguire localmente o su un server.

In questa sezione creerai un'app di base con Flask e poi la eseguirai in un contenitore Docker. Puoi utilizzare il tuo editor preferito per creare l'app oppure puoi utilizzare il seguente comando nel tuo terminale per creare una nuova app:

Iniziamo con la creazione di una nuova directory:

mkdir flask-app && flask-app 

Quindi, crea l'ambiente virtuale Python e quindi attiva l'ambiente:

python3 -m venv venv 
source venv/bin/activate 

Ora installa il modulo Python di Flask nell'ambiente virtuale:

pip install Flask 

Il comando seguente creerà il file Requirements.txt con i pacchetti installati nell'ambiente corrente. Questo file è utile per installare il modulo nelle distribuzioni:

pip freeze > requirements.txt 

Ora crea un'applicazione Flask di esempio. Puoi scrivere il tuo codice in un file .py ed eseguirlo con il comando python:

vim app.py 

Aggiungi il frammento di seguito:

# Import flask module
from flask import Flask
 
app = Flask(__name__)
 
@app.route('/')
def index():
    return 'Hello to Flask!'
 
# main driver function
if __name__ == "__main__":
    app.run()

La tua applicazione di esempio Flask è pronta. Puoi eseguire questo script con Python ora:

flask run --host 0.0.0.0 --port 5000 

Ora che hai un'app di base, puoi eseguirla in un contenitore Docker creando un file chiamato Dockerfile nella stessa directory del tuo file app.py.

Creare un Dockerfile per la tua applicazione Flask

Un Dockerfile è un file che contiene le istruzioni su come creare l'immagine. Descrive l'intero processo di creazione dell'immagine dall'installazione dell'app Python alla creazione del container.

Creiamo un file chiamato Dockerfile nella directory del progetto. Questa è la finestra mobile del file che legge le istruzioni per creare l'immagine:

vim Dockerfile 

Aggiungi il seguente codice:

FROM python:3-alpine

# Create app directory
WORKDIR /app

# Install app dependencies
COPY requirements.txt ./

RUN pip install -r requirements.txt

# Bundle app source
COPY . .

EXPOSE 5000
CMD [ "flask", "run","--host","0.0.0.0","--port","5000"]

Salva il file e chiudilo.

Quindi, crea l'immagine Docker eseguendo il comando indicato di seguito. Qui "flask-app" è il nome dell'immagine:

docker build -t flask-app . 

Questa immagine verrà creata nel registro immagini locale. Quindi puoi creare un contenitore Docker con il comando seguente:

sudo docker run -it -p 5000:5000 -d flask-app  

Ora verifica che il contenitore sia in esecuzione sul tuo sistema:

docker containers ls  

Infine, apri un browser e connettiti a localhost sulla porta 5000 (o usa la tua porta definita). Dovresti vedere l'applicazione appena creata.

Puoi utilizzare un Dockerfile per automatizzare la creazione e l'aggiornamento della tua immagine.

Conclusione

In questo tutorial, hai imparato come creare un'app Flask di base e creare un'immagine Docker con essa. Hai anche imparato come creare un registro privato e automatizzare la creazione e l'aggiornamento della tua immagine.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.