Calculer le hash d'un répertoire
Auteur : Philippe Le Van - @plv@framapiaf.org
Date : 8 décembre 2022
Cas d'usage
Pour éviter de rebuilder une image docker à chaque push de mon repository, je fais un hash des fichiers et répertoires qui peuvent avoir une influence sur mon image docker, puis je tague mon image avec ce hash.
Ensuite avant de rebuilder mon image, je teste l'existence de mon image avec le tag concerné. Si elle existe déjà, je ne rebuilde pas.
Calculer le hash d'un répertoire
La méthode la plus simple que j'ai trouvée, c'est de faire un tar du répertoire, puis de calculer le hash du tar.
Cas de base
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
Ensuite, il faut virer le "-" à la fin du hash.
1 2 3 4 5 6 7 8 9 10 |
|
si je veux exclure des fichiers
On peut utiliser les fonctions d'exclusion de tar
1 2 3 4 5 6 7 8 |
|
Commande moins verbeuse
Là le tar prend l'option -cvf
. Le "v" permet ici de dire que l'on veut afficher tous les fichiers que l'on prend en compte dans le hash. C'est pratique pour le debug, mais on peut l'enlever et utiliser -cf
à la place de -cvf
.
Si je veux changer de fonction de hashage
On peut utiliser la commande sha256sum
ou md5sum
à la place de sha1sum