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-update-custom-docker-image.md.

AI Deploy - Mettre à jour les images Docker personnalisées

Voir en Markdown

Comment mettre à jour et utiliser l’image Docker de votre application AI Deploy

Objectif

Pour être lancée, notre application AI Deploy doit être conteneurisée, à l'intérieur d'une image Docker.

Pendant que notre app est en cours d'exécution, il est probable que nous devions mettre à jour notre image Docker pour corriger des problèmes ou apporter de nouvelles fonctionnalités. C'est pourquoi nous allons voir dans ce tutoriel comment faire en sorte que notre app utilise la version mise à jour de notre image Docker.

Schéma de l'utilisation d'une image Docker mise à jour dans une application déployée montrant le tag et le push vers le registre d'images puis ovhai app set-image pour mettre à jour l'image puis l'arrêt et le redémarrage de l'application pour qu'AI Deploy récupère l'image mise à jour

Prérequis


Accès à l'espace client OVHcloud

  • Lien direct :
  • Pour accéder à vos services : Public Cloud > Sélectionnez votre projet

En pratique

  • Mettre à jour notre image Docker
  • Mettre à jour l'image de notre app

Mettre à jour notre image Docker

Lors de la mise à jour d'une image Docker, nous avons deux options :

  • Utiliser un tag existant : écrasera l'ancienne version de l'image par la nouvelle.
  • Créer un nouveau tag : conservera l'ancienne version de l'image tout en ajoutant la nouvelle version.
Info

Dans ce tutoriel, nous supposerons que vous disposez déjà d'une app en cours d'exécution sur une image Docker, ainsi que d'une version mise à jour de cette image. Les deux possibilités précédentes (tag existant et nouveau tag) seront expliquées.

Mettre à jour l'image de notre app

Mettre à jour l'image de notre application est généralement plus intéressant que de relancer une nouvelle app. En effet, cela nous permet tout d'abord de conserver le même lien vers l'application. Nous éviterons également d'avoir à déployer une nouvelle app et à spécifier de nouveau tous nos arguments (volumes, ports, ressources, ...). Enfin, cela nous permettra de ne pas accumuler notre nombre d'apps déployées, pour une gestion beaucoup plus efficace.

Réutiliser un tag existant

Lors de la mise à jour de notre image Docker, nous avons réutilisé le même tag que celui spécifié lors du lancement initial de notre application. Nous devrons simplement arrêter et redémarrer l'application pour utiliser la nouvelle version de notre image Docker.

En effet, le tag d'image qui a été spécifié lors du lancement initial de l'application sera à nouveau récupéré (pull) lors de l'étape de redémarrage. Comme le tag initial correspond au tag de l'image mise à jour, la nouvelle version de l'image sera récupérée et utilisée au sein de notre application redémarrée.

Warning

Comme mentionné précédemment, la mise à jour de votre image Docker en utilisant le même tag peut être dangereuse. Gardez à l'esprit que cela va écraser, supprimer votre version précédente.

Exemple

Imaginons que notre app AI Deploy ait été initialement lancée à partir de l'image suivante : registry_address.ovh.net/my_ai_app:v1.0.0. Comme vous pouvez le constater, notre image est stockée dans le registre registry_address.ovh.net, se nomme my_ai_app, et la version utilisée porte le tag v1.0.0.

Notre app est toujours dans un état RUNNING, ce qui signifie qu'elle est actuellement déployée. Si nous apportons des modifications à l'image utilisée par cette application, en poussant (push) notre version d'image mise à jour vers le même registre, avec le même tag, notre ancienne image sera remplacée par la nouvelle version. Mais tant que notre app est en cours d'exécution, la version de l'image déployée ne changera pas, afin de garder l'app en fonctionnement correct.

Cependant, si nous arrêtons et redémarrons l'app, l'image utilisée sera celle indiquée lors du lancement initial de l'app, c'est-à-dire celle disponible à l'adresse registry_address.ovh.net/my_ai_app:v1.0.0 dans notre cas. Comme cette image a été mise à jour et que l'ancienne a été supprimée, la dernière version (celle mise à jour) sera désormais utilisée par l'app.

Cette opération d'arrêt et de redémarrage peut être effectuée depuis le (UI) en cliquant sur le bouton ... à côté de votre app, comme illustré sur la capture d'écran ci-dessous :

Onglet Apps d'AI Deploy listant les applications déployées avec le menu d'actions ouvert sur l'application speech_to_text_app-compassionate en cours d'exécution affichant Details Generate a token Start Stop et Delete

Exécutez-la depuis la CLI ovhai avec les commandes suivantes :

ovhai app stop <app-id>
ovhai app start <app-id>

Créer un nouveau tag

En revanche, si nous avons mis à jour notre image sous un autre tag, nous devrons indiquer ce changement à l'application. Sinon, l'application continuera à récupérer (pull) l'image qui était spécifiée lors de son premier lancement.

Pour indiquer la version mise à jour de l'image à récupérer, vous pouvez utiliser la CLI ovhai et saisir :

ovhai app stop <app-id>

ovhai app set-image <app-id> <registry-address>/<image-identifier>:<new-tag-name>

ovhai app start <app-id>

Comme vous pouvez le constater, vous devrez arrêter et redémarrer l'app puisque le changement d'image ne prend effet qu'au redémarrage de l'app.

Exemple

Imaginons maintenant que notre app AI Deploy ait été initialement lancée à partir de l'image suivante : registry_address.ovh.net/my_ai_app:v1.0.0. Nous avons mis à jour notre image, et l'avons poussée sur le même registre, mais cette fois avec un tag différent : registry_address.ovh.net/my_ai_app:v2.0.0.

Si nous nous contentons d'arrêter et de redémarrer notre app, sans spécifier le changement d'image (de registry_address.ovh.net/my_ai_app:v1.0.0 à registry_address.ovh.net/my_ai_app:v2.0.0), l'app redémarrée continuera d'utiliser la première version de l'image (registry_address.ovh.net/my_ai_app:v1.0.0). Cela signifie qu'elle n'utilisera pas la version mise à jour.

Pour y remédier, nous devons arrêter notre application, changer l'image à l'aide de la commande image-set, puis redémarrer l'app afin que le changement soit pris en compte. L'app déployée utilisera alors la nouvelle version de notre image Docker.

Aller plus loin

Découvrez comment utiliser des registres publics et privés lorsque vous travaillez avec les outils AI d'OVHcloud ici.

Découvrez quelques apps AI Deploy que nous avons créées avec une API ou un frontend web via notre Portfolio d'apps.

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 sur le serveur Discord OVHcloud.

Cette page vous a-t-elle aidé ?