Aller au contenu

Déployer une application Flask avec Docker

Docker est un bon moyen de déployer une application Flask dans un contexte Data. Si vous n'êtes familier avec Docker, je vous recommande de consulter le module dédié en cliquant ici.

Dockerfile

Créez un fichier Dockerfile à la racine de votre projet

# Base Docker Image
FROM python:3-buster

# Set Working directory
WORKDIR /app

# Copy source code in the container
ADD . /app

# Install dependencies
RUN pip install --upgrade pip \
    && pip install -r requirements.txt

# Enable access to the port
EXPOSE 5000

# Launch application
CMD ["python", "app.py", "--debug", "--host=0.0.0.0", "--port=5000"]

Créer l'image Docker

Pour créer l'image de l'application, exécutez la commande suivante depuis la racine de votre projet.

# Build image
docker build -f Dockerfile -t iflaskapp:v1 .
Pour supprimer une image existante
# Remove image
docker image rm iflaskapp:v1

Déployer le conteneur Docker

# Run container
docker run -p 5000:5000 \
    --restart=always \
    --name cflaskapp \
    -d iflaskapp:v1
Le serveur web est démarré et l'application est accessible à l'adresse http://localhost:5000

Pour arrêter ou supprimer le contenueur Docker, exécutez les commande suivantes

# Stop container
docker stop cflaskapp

# Remove container 
docker rm cflaskapp
Attention, il faut arrêter un conteneur avant de pouvoir le supprimer. Vous ne pouvez pas supprimer un conteneur qui en cours d'exécution.


Encore un nouveau palier franchi ! Dans la prochaine section vous découvrirez FastAPI le concurrent de Flask qui est de plus en plus utiliser au détriment de Flask.