2.7. Containerfile
创建定义文件后,Ansible Builder 会读取并验证它,创建一个 Containerfile
和容器构建上下文,并选择性地将它们传递给 Podman 以构建自动化执行环境镜像。容器构建以几个不同的阶段发生: base
、galaxy
、builder
和 最终
。镜像构建步骤(以及 additional_build_steps
中定义的任何对应的自定义 prepend_
和 append_
步骤)包括:
-
在
基础
构建阶段,指定的基础镜像是(可选)由其他构建阶段自定义的组件,包括 Python、pip
、ansible-core
和ansible-runner
。然后,生成的镜像会被验证以确保所需的组件可用(因为它们可能已在基础镜像中存在)。生成的自定义基础镜像
的临时副本用作所有其他构建阶段的基础。 -
在
galaxy
构建阶段,由定义文件指定的集合会在最终
构建阶段下载并供以后安装。还会收集集合声明的 Python 和系统依赖项(若有),以便稍后进行分析。 -
在
构建器
构建阶段,集合声明的 Python 依赖项与定义文件中列出的 Python 依赖项合并。最后的 Python 依赖项被下载并构建为 Python wheels,并在最终
构建阶段存储下来。 -
在
最终
构建阶段,会安装之前下载的集合,以及系统软件包以及之前由集合声明为依赖项或定义文件中列出的依赖项的、以前构建的 Python 软件包。