Sobre o projeto

tailor serve como uma interface front-end declarativa de alto nível para o Azure Linux Image Customizer (IC). Ele aborda a complexidade de escrever manualmente comandos Docker de baixo nível, permitindo que os desenvolvedores descrevam conjuntos de imagens em pequenos arquivos YAML em camadas. A ferramenta mescla configurações de base com fragmentos por eixo, expande matrizes em células de construção individuais e resolve automaticamente imagens de base antes de executar o contêiner IC. Principais recursos incluem: - **Configuração Declarativa**: Usa um `image.yaml` para configurações compartilhadas e fragmentos `by-<axis>/<value>.yaml` para variações (por exemplo, arquitetura, variante). Emprega um modelo de mesclagem determinístico onde mapas são mesclados profundamente e listas são anexadas, com diretivas `$set` explícitas necessárias para conflitos de escalares para evitar sobrescritos silenciosos. - **Execução Automatizada**: tailor lida com a complexa invocação `docker run` exigida pelo IC, incluindo a definição da plataforma correta, reescrita de caminhos do host para o namespace `/host`, gerenciamento de montagens privilegiadas e verificação de saídas. Suporta reprodutibilidade via `tailor.lock` e construções `--locked`. - **Imagens de Base Flexíveis**: Suporta arquivos locais, referências OCI e atalhos MCR do Azure Linux. Também permite o encadeamento de construções, onde uma imagem pode usar outra como base via `inputs:`. - **Ferramentas de Fluxo de Trabalho**: Fornece `tailor init` para scaffolding, `--dry-run` para visualização de comandos e `export` para renderização de configs. Inclui recursos de segurança como limpeza sem sudo e proteções de diretório de ferramentas. A ferramenta é distribuída como um binário estático para Linux x86_64 e aarch64, exigindo apenas acesso ao daemon Docker em tempo de execução.