Dokos intègre un mécanisme de vérification automatique des images Docker après leur construction dans le cadre de son pipeline CI/CD. Ce processus permet de s'assurer que les images générées sont fonctionnelles et de notifier les administrateurs en cas d'échec.
Après la construction d'une image Dokos dans le pipeline GitLab CI, les étapes suivantes sont exécutées automatiquement :
Si l'une de ces étapes échoue, le pipeline est marqué comme échoué et une notification est envoyée.
Les notifications en cas d'échec de construction ou de vérification des images sont envoyées via les canaux configurés dans GitLab. Voici comment personnaliser ces notifications :
Pour recevoir les notifications, vous devez configurer les destinataires dans le fichier .gitlab-ci.yml :
notifications:
email:
to:
- admin@votredomaine.com
- equipe-dev@votredomaine.com
Le message de notification peut être personnalisé pour inclure des informations spécifiques à votre environnement. Voici un exemple de configuration :
notify_failure:
script:
- |
echo "La construction de l'image Dokos a échoué. Consultez les logs du pipeline pour plus de détails : $CI_PIPELINE_URL" | mail -s "[Dokos] Échec de la construction de l'image" $NOTIFICATION_EMAILS
Vous pouvez également configurer des intégrations avec des outils comme Slack ou Mattermost pour recevoir les notifications directement dans vos canaux de communication :
notify_slack:
script:
- curl -X POST -H 'Content-type: application/json' --data "{\"text\":\"La construction de l'image Dokos a échoué. Consultez les logs : $CI_PIPELINE_URL\"}" $SLACK_WEBHOOK_URL
Voici un extrait du fichier .gitlab-ci.yml illustrant la configuration de la vérification des images et des notifications :
check_image:
stage: test
script:
- docker run -d --name dokos_test $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
- sleep 30
- docker exec dokos_test curl -s http://localhost:8000/api/method/ping || exit 1
- docker logs dokos_test > build.log
- grep -q "Site dokos initialized" build.log || exit 1
after_script:
- docker stop dokos_test && docker rm dokos_test
notify_failure:
stage: .post
script:
- |
if [ $CI_JOB_STATUS == "failed" ]; then
echo "La vérification de l'image Dokos a échoué. Pipeline : $CI_PIPELINE_URL" | mail -s "[Dokos] Échec de la vérification de l'image" admin@votredomaine.com
fi
when: on_failure
Si les notifications ne sont pas reçues :
notify_failure dans GitLab CI pour identifier les erreurs.