For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/fr/guides/public-cloud/ai-machine-learning/ai-deploy-build-use-flask-image.md.

AI Deploy - Tutoriel - Déployer une app simple avec Flask

Voir en Markdown

Comment construire et utiliser votre propre image Docker contenant une application Flask

Info

Objectif

Flask est un micro framework open source pour le développement web en Python.

L’objectif de ce tutoriel est de vous montrer comment construire et utiliser une image Docker personnalisée pour une application Flask.

Prérequis

En pratique

Écrire une application Flask simple

Créez un fichier Python simple nommé app.py.

Dans ce fichier, importez les modules nécessaires :

from flask import Flask

Créez l’app Flask :

app = Flask(__name__)

Définissez une fonction simple :

@app.route('/')
def index():
    return 'Web App with Python Flask using AI Deploy!'

Démarrez votre app :

if __name__ == '__main__':
    # starting app
    app.run(debug=True,host='0.0.0.0')
  • Plus d’informations sur Flask sont disponibles ici.
  • Le lien direct vers le fichier python complet est disponible ici.

Écrire le fichier requirements.txt de l’application

Le fichier requirements.txt nous permettra d’indiquer tous les modules nécessaires au fonctionnement de notre application. Ce fichier sera utile lors de l’écriture du Dockerfile.

Flask==1.1.2

Écrire le Dockerfile de l’application

Votre Dockerfile doit commencer par l’instruction FROM indiquant l’image parente à utiliser. Dans notre cas, nous choisissons de partir d’une image Python classique.

FROM python

Installez le fichier requirements.txt qui contient les modules Python nécessaires à l’aide d’une commande pip install ... :

RUN pip install -r requirements.txt

Définissez votre commande de lancement par défaut pour démarrer l’application.

CMD [ "python" , "/workspace/app.py" ]

Donnez les droits d’accès nécessaires à l’utilisateur ovhcloud (42420:42420) :

RUN chown -R 42420:42420 /workspace
ENV HOME=/workspace
  • Plus d’informations sur les Dockerfiles sont disponibles ici.
  • Le lien direct vers le Dockerfile complet est disponible ici.

Construire l’image Docker depuis le Dockerfile

Depuis le répertoire contenant votre Dockerfile, exécutez l’une des commandes suivantes pour construire l’image de votre application :

# Build the image using your machine's default architecture
docker build . -t flask-app:latest

# Build image targeting the linux/amd64 architecture
docker buildx build --platform linux/amd64 -t flask-app:latest .
  • La première commande construit l’image en utilisant l’architecture par défaut de votre système. Cela peut fonctionner si votre machine utilise déjà l’architecture linux/amd64, requise pour exécuter des containers avec nos produits AI. Cependant, sur des systèmes avec une architecture différente (par exemple ARM64 sur Apple Silicon), l’image résultante ne sera pas compatible et ne pourra pas être déployée.

  • La seconde commande cible explicitement l’architecture linux/amd64 afin de garantir la compatibilité avec nos services AI. Elle nécessite buildx, qui n’est pas installé par défaut. Si vous n’avez jamais utilisé buildx, vous pouvez l’installer en exécutant : docker buildx install

Info

L’argument point . indique que votre contexte de build (emplacement du Dockerfile et des autres fichiers nécessaires) est le répertoire courant.

L’argument -t vous permet de choisir l’identifiant à donner à votre image. En général, les identifiants d’image sont composés d’un nom et d’un tag de version <name>:<version>. Pour cet exemple, nous avons choisi flask-app:latest.

Tester en local (optionnel)

Lancez la commande docker suivante pour lancer votre application localement sur votre ordinateur :

docker run --rm -it -p 5000:5000 --user=42420:42420 flask-app:latest
Info

L’argument -p 5000:5000 indique que vous souhaitez rediriger le port 5000 de votre machine locale vers le port 5000 du container docker. Le port 5000 est le port par défaut utilisé par les applications Flask.

Warning

N’oubliez pas l’argument --user=42420:42420 si vous souhaitez simuler exactement le même comportement que celui qui se produira sur les apps AI Deploy. Il exécute le container docker en tant qu’utilisateur OVHcloud spécifique (utilisateur 42420:42420).

Une fois démarrée, votre application devrait être disponible à l’adresse http://localhost:5000 .

Envoyer l’image vers le registre partagé

Warning

Le registre partagé ne doit être utilisé qu’à des fins de test. Nous vous recommandons de créer et d’attacher votre propre registre. Plus d’informations à ce sujet sont disponibles ici. Les images envoyées sur ce registre sont destinées uniquement aux workloads AI Tools et ne seront pas accessibles pour des usages externes.

Trouvez l’adresse de votre registre partagé en lançant cette commande :

ovhai registry list

Connectez-vous au registre partagé avec vos identifiants habituels d’utilisateur AI Platform :

docker login -u <user> -p <password> <shared-registry-address>

Envoyez l’image compilée vers le registre partagé :

docker tag flask-app:latest <shared-registry-address>/flask-app:latest
docker push <shared-registry-address>/flask-app:latest

Lancer l’app AI Deploy

La commande suivante démarre une nouvelle app exécutant votre application Flask :

ovhai app run --default-http-port 5000 --cpu 1 <shared-registry-address>/flask-app:latest
Info

--default-http-port 5000 indique que le port à atteindre sur l’URL de l’app est le 5000.

--cpu 1 indique que nous demandons 1 CPU pour cette app.

Pensez à ajouter l’attribut --unsecure-http si vous souhaitez que votre application soit accessible sans authentification.

Une fois l’app en cours d’exécution, vous pouvez accéder à votre application Flask directement depuis l’URL de l’app.

Page de navigateur affichant le texte Web App with Python Flask using AI Training

Aller plus loin

  • Pour aller plus loin avec Flask, imaginez créer une app pour déployer un modèle de détection d’objets. Reportez-vous à ce tutoriel.
  • Flask vous permet de faire de la classification de sentiment sur des textes à l’aide de modèles Hugging Face. C’est par ici.

Pour une formation ou une assistance technique sur la mise en œuvre de nos solutions, contactez votre commercial ou consultez la page Professional Services pour obtenir un devis et faire analyser votre projet par nos experts.

Votre avis nous intéresse !

N’hésitez pas à nous faire part de vos questions, retours et suggestions pour améliorer le service :

Cette page vous a-t-elle aidé ?