这个项目能做什么
tailor 作为 Azure Linux Image Customizer (IC) 的高层声明式前端,解决了手动编写低级 Docker 命令的复杂性。它允许开发者使用小型分层 YAML 文件来描述镜像集。该工具将基础配置与按轴的片段合并,将矩阵扩展为单个构建单元,并在执行 IC 容器之前自动解析基础镜像。
主要功能包括:
- **声明式配置**:使用 `image.yaml` 进行共享设置,并使用 `by-<axis>/<value>.yaml` 片段进行变体(例如,架构、变体)。它采用确定性合并模型,其中映射进行深度合并,列表进行追加,而标量冲突则需要显式的 `$set` 指令来防止静默覆盖。
- **自动化执行**:tailor 处理 IC 所需的复杂 `docker run` 调用,包括设置正确的平台、将主机路径重写到 `/host` 命名空间、管理特权挂载,以及验证输出。它通过 `tailor.lock` 和 `--locked` 构建支持可重复性。
- **灵活的基础镜像**:支持本地文件、OCI 引用和 Azure Linux MCR 简称。它还允许通过 `inputs:` 将一个镜像用作另一个镜像的基础,从而实现构建链。
- **工作流工具**:提供 `tailor init` 用于脚手架、`--dry-run` 用于预览命令,以及 `export` 用于渲染配置。它还包括安全功能,例如无 sudo 清理和工具目录保护。
该工具以静态二进制文件的形式分发,适用于 Linux x86_64 和 aarch64,运行时仅需要 Docker 守护进程访问。
评论
0 评分人数达到10人后显示
登录后参与讨论。