Setup Docker¶
Build de l'image¶
L'image n'est pas publiée sur Docker Hub — elle se construit depuis les sources.
Lancer depuis la racine du dépôt (présence du Dockerfile) :
Build multi-architecture pour ARM64 (NAS Synology, Raspberry Pi) :
Vérifier que l'image est disponible :
Contenu de l'image¶
Base : Alpine 3.19 (~5 Mo). Taille finale de l'image : ~15 Mo.
Packages installés via apk :
| Package | Rôle |
|---|---|
bash |
Interpréteur |
jq |
Lecture/écriture des sidecars JSON |
b3sum |
Calcul des empreintes BLAKE3 |
coreutils |
wc, du, date, etc. |
findutils |
find récursif |
grep |
Filtrage des résultats |
Tous les packages viennent des dépôts Alpine — aucun binaire téléchargé depuis GitHub. Avantage : builds reproductibles, pas de dépendance à la disponibilité de GitHub Releases.
Entrypoint¶
docker/entrypoint.sh dispatche les commandes vers integrity.sh ou runner.sh.
Commandes supportées :
| Commande | Dispatch |
|---|---|
compute |
integrity.sh compute ... |
verify |
integrity.sh verify ... |
compare |
integrity.sh compare ... |
runner |
runner.sh <pipeline.json> |
shell |
/bin/bash interactif (debug) |
help |
Affiche l'aide |
version |
Affiche la version |
| Commande inconnue | Exit non-zéro |
Variables d'environnement¶
| Variable | Défaut dans le conteneur | Description |
|---|---|---|
RESULTATS_DIR |
/resultats |
Dossier de sortie des résultats verify et compare |
RESULTATS_DIR doit correspondre à un volume monté. Si /resultats n'est pas monté,
les résultats sont écrits à l'intérieur du conteneur et perdus à l'arrêt.
# Passer RESULTATS_DIR explicitement
docker run --rm \
-v /mon/dossier/resultats:/resultats \
-e RESULTATS_DIR=/resultats \
hash_tool verify /bases/hashes.b3 /data
Mise à jour de l'image¶
Après modification du code source, rebuilder l'image pour que les changements soient pris en compte :
Image obsolète
Si hash-tool produit des résultats inattendus en mode Docker, vérifier que
l'image est à jour par rapport au code source. Une image buildée avant un
correctif n'intègre pas ce correctif.
.dockerignore¶
Le .dockerignore exclut du contexte de build ce qui n'est pas nécessaire dans
l'image : tests/, docs/, examples/, *.b3, fichiers temporaires.
Le contexte envoyé au daemon Docker est minimal (~quelques Ko).