Vérification des images Docker de Dokos
Vérification des images Docker de Dokos
Le pipeline GitLab du dépôt Dokos construit une image Docker qui contient Dodock, Dokos et les applications principales. Avant de publier l'image, le pipeline vérifie qu'elle est complète. Si la construction ou la vérification échoue, un message peut partir vers un webhook.
Quand l'image est construite
Le job docker s'exécute :
- sur un tag (une version publiée) ;
- quand la variable
DO_BUILD_DOCKERvauttrue, par exemple pour un pipeline lancé à la main.
L'image est construite avec le fichier images/custom/Containerfile du projet frappe_docker. Elle contient les applications frappe, payments, hrms, webshop, etransactions et erpnext. Les variables PAYMENTS_BRANCH, HRMS_BRANCH, WEBSHOP_BRANCH, ETRANSACTIONS_BRANCH, DODOCK_BRANCH et DOKOS_BRANCH choisissent une autre branche pour une application.
Contrôles de l'image
Après la construction, le pipeline lance l'image et vérifie, pour chaque application :
- le dossier
apps/<application>du bench existe ; - le paquet Python de l'application est installé ;
- le dossier des fichiers statiques
assets/<application>existe.
Le pipeline vérifie aussi le fichier assets/assets.json.
Si un contrôle échoue, le job affiche l'élément manquant (par exemple Missing app: hrms) et s'arrête. L'image n'est pas publiée.
Si les contrôles réussissent, le pipeline publie l'image dans le registre GitLab. Sur un tag vX.Y.Z, il publie aussi l'étiquette de la version majeure (vX). Sur la dernière version publiée, il publie aussi l'étiquette latest.
Notification en cas d'échec
Le job docker:fail-notification s'exécute seulement si :
- le job
dockera échoué ; - la variable CI/CD
ON_BUILD_FAILURE_WEBHOOKest définie.
Le job envoie un message au format Discord à l'adresse de ce webhook. Le message contient le projet, la branche, le commit et le lien vers les journaux du job.
Pour recevoir ces messages :
- Créez un webhook entrant dans votre outil de messagerie. Il doit accepter un JSON avec une clé
content(format Discord). - Dans GitLab, ouvrez Paramètres > CI/CD > Variables du projet.
- Ajoutez la variable
ON_BUILD_FAILURE_WEBHOOKavec l'adresse du webhook. Masquez la variable : l'adresse donne le droit d'écrire dans votre canal.
Diagnostiquer un échec
- Le job
dockergarde le fichierdocker-build.logcomme artefact pendant une semaine. Il contient le journal complet de la construction. - Un message
Missing app,Missing Python packageouMissing assetsdésigne l'application en cause. Vérifiez que sa branche existe et qu'elle se construit.