About this project
tailor serves as a high-level, declarative front-end for the Azure Linux Image Customizer (IC). It addresses the complexity of hand-writing low-level Docker commands by allowing developers to describe image sets in small, layered YAML files. The tool merges base configurations with per-axis fragments, expands matrices into individual build cells, and automatically resolves base images before executing the IC container.
Key capabilities include:
- **Declarative Configuration**: Uses an `image.yaml` for shared settings and `by-<axis>/<value>.yaml` fragments for variations (e.g., architecture, variant). It employs a deterministic merge model where maps deep-merge and lists append, with explicit `$set` directives required for scalar conflicts to prevent silent overwrites.
- **Automated Execution**: tailor handles the intricate `docker run` invocation required by IC, including setting the correct platform, rewriting host paths into the `/host` namespace, managing privileged mounts, and verifying outputs. It supports reproducibility via `tailor.lock` and `--locked` builds.
- **Flexible Base Images**: Supports local files, OCI references, and Azure Linux MCR shorthands. It also allows chaining builds where one image can use another as a base via `inputs:`.
- **Workflow Tools**: Provides `tailor init` for scaffolding, `--dry-run` for previewing commands, and `export` for rendering configs. It includes safety features like sudo-free cleanup and tools-dir guards.
The tool is distributed as a static binary for Linux x86_64 and aarch64, requiring only Docker daemon access at runtime.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.