diff --git a/subject/docker-updater/ex-api-updater.md b/subject/docker-updater/ex-api-updater.md index 7dae630..b1075d5 100644 --- a/subject/docker-updater/ex-api-updater.md +++ b/subject/docker-updater/ex-api-updater.md @@ -56,6 +56,26 @@ Notez que l'on n'emploie pas `ctr-updater` pour appeler le binaire dans l'image. Le premier argument passé au conteneur est donc le nom du conteneur à vérifier. +::::: {.question} + +#### Afficher ou ne pas afficher le conteneur courant dans la liste ? {-} + +On remarque que dans l'exemple, on lance un conteneur `youp0m` puis un +conteneur `login/ctr-updater`, mais pourtant `ctr-updater` n'affiche qu'un seul +conteneur. + +Étant donné que l'on ne pourra pas mettre à jour le conteneur courant +automatiquement, puisque c'est lui qui stope puis relance les conteneurs, on ne +le propose pas dans la liste. + +Lors de l'affichage de la liste des conteneurs, sauter le conteneur dont le +début de l'identifiant commence par le `hostname(1)`. + +Le comportement est indéfini si l'on passe le nom de notre propre conteneur en +argument, pour les étapes suivantes. + +::::: + ## Étape 2 : Détecter si le conteneur exécute la dernière image disponible @@ -85,6 +105,25 @@ suivant si (0) aucune mise à jour de l'image n'est disponible, respectivement N'hésitez pas à utiliser la sortie d'erreur et la sortie standard pour afficher des informations pour vous. Celles-ci ne seront pas vérifiées. +::::: {.warning} + +#### Qu'est-ce qu'une image à jour ? {-} + +Attention, on souhaite rester sur le même tag que celui avec lequel on a +démarré le conteneur. Il ne s'agit pas de trouver un tag plus récent. + +Par exemple, si on a lancé un conteneur à partir de l'image `mariadb:10`, on va +chercher s'il y a une mise à jour pour l'image `mariadb:10` sur le registre. Il +n'est pas question d'aller parcourir la liste des tags pour voir si oui ou non +le tag est bien le dernier. + +Si on a lancé un conteneur à partir de l'image `python:3.9`, il n'est pas +question de passer sur `python:3` ou `python:3.11`. Dans le cas de `latest`, on +cherche également à se maintenir à jour par rapport à `latest`, nécessairement +plus souvent que les autres tags. + +::::: + ## Étape 3 : Chercher une mise à jour l'image @@ -128,4 +167,27 @@ utilisant la nouvelle image. Il est attendu dans ce cas de toujours retourner le statut 0 si la mise à jour se passe bien. +### Exemples d'exécution {-} + +
+```bash +42sh$ docker build -t my_webserver . +42sh$ docker run -d --name mws my_webserver +42sh$ echo "nouvelle page" > index.html +42sh$ docker build -t my_webserver . +42sh$ ctr-updater mws +42sh$ echo $? +1 # Une mise à jour est dispo. + +42sh$ ctr-updater --autoupdate mws +``` +
+ +
+```bash +42sh$ docker run -d --name myp0m nemunaire/youp0m +42sh$ ctr-updater --pull --autoupdate myp0m +``` +
+ :::::