À propos du projet

tailor sert de front-end déclaratif de haut niveau pour l'outil de personnalisation d'image Linux Azure (IC). Il répond à la complexité de la rédaction manuelle de commandes Docker de bas niveau en permettant aux développeurs de décrire des ensembles d'images dans de petits fichiers YAML en couches. L'outil fusionne les configurations de base avec des fragments par axe, développe les matrices en cellules de construction individuelles et résout automatiquement les images de base avant d'exécuter le conteneur IC. Les fonctionnalités clés comprennent : - **Configuration déclarative** : utilise un fichier `image.yaml` pour les paramètres partagés et des fragments `by-<axis>/<value>.yaml` pour les variations (par exemple, l'architecture, la variante). Il utilise un modèle de fusion déterministe où les cartes sont fusionnées en profondeur et les listes sont complétées, avec des directives `$set` explicites requises pour les conflits scalaires pour éviter les surécritures silencieuses. - **Exécution automatisée** : tailor gère l'appel `docker run` complexe requis par IC, y compris la définition de la plate-forme correcte, la réécriture des chemins d'hôte dans l'espace de noms `/host`, la gestion des montages privilégiés et la vérification des sorties. Il prend en charge la reproductibilité via `tailor.lock` et les constructions `--locked` . - **Images de base flexibles** : prend en charge les fichiers locaux, les références OCI et les raccourcis Azure Linux MCR. Il permet également de chaîner des constructions où une image peut utiliser une autre comme base via `inputs:`. - **Outils de workflow** : fournit `tailor init` pour le scaffolding, `--dry-run` pour prévisualiser les commandes et `export` pour restituer les configurations. Il comprend des fonctionnalités de sécurité telles que le nettoyage sans sudo et les garde-fou pour les répertoires d'outils. L'outil est distribué sous forme de binaire statique pour Linux x86_64 et aarch64, nécessitant uniquement un accès au démon Docker au moment de l'exécution.