community.docker.docker_image_build 模块 – 使用 Docker buildx 构建 Docker 镜像
注意
此模块是 community.docker 集合 (版本 4.1.0) 的一部分。
如果您正在使用 ansible
软件包,则可能已经安装了此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用: ansible-galaxy collection install community.docker
。您需要其他要求才能使用此模块,请参阅 要求 获取详细信息。
要在剧本中使用它,请指定: community.docker.docker_image_build
。
community.docker 3.6.0 中的新增功能
概要
此模块允许您使用 Docker 的 buildx 插件 (BuildKit) 构建 Docker 镜像。
请注意,此模块并非像经典 Ansible 模块那样具有幂等性。唯一的幂等性检查是构建的镜像是否已存在。可以使用
rebuild
选项禁用此检查。
要求
执行此模块的主机需要以下要求。
带有 Docker buildx 插件的 Docker CLI
参数
参数 |
注释 |
---|---|
Docker 主机上运行的 Docker API 的版本。 默认为此集合和 docker 守护程序支持的最新 API 版本。 如果任务中未指定此值,则将使用环境变量 默认值: |
|
提供 Docker 期望值为字符串。为方便起见,任何非字符串值都将转换为字符串。 |
|
通过提供 CA 证书文件的路径来执行服务器验证时使用 CA 证书。 如果任务中未指定此值并且设置了环境变量 |
|
要考虑作为缓存源的镜像名称列表。 |
|
要使用的 Docker CLI 上下文。 与 |
|
客户端 TLS 证书文件的路径。 如果任务中未指定此值并且设置了环境变量 |
|
客户端 TLS 密钥文件的路径。 如果任务中未指定此值,并且环境变量 |
|
Docker CLI 的路径。如果未提供,将在 |
|
用于连接到 Docker API 的 URL 或 Unix 套接字路径。要连接到远程主机,请提供 TCP 连接字符串。例如, 如果任务中未指定此值,则将使用环境变量 与 |
|
构建镜像时,提供 Dockerfile 的替代名称。 这也可以包含相对路径(相对于 |
|
要添加到构建容器的 除了 IP 地址外,还可以使用特殊值 |
|
键值对字典。 |
|
镜像名称。名称格式之一: 请注意,不能使用镜像 ID(哈希值)和包含摘要的名称。 |
|
用于 |
|
构建镜像时不使用缓存。 选项
|
|
输出目标。 您可以提供导出程序列表,以便将构建的镜像导出到各种位置。请注意,所使用的构建驱动程序可能不支持所有导出程序。 请注意,根据此选项的使用方式,可能不会创建名称为 为此选项提供空列表等效于根本不指定它。默认行为是单个条目,其中 |
|
要导入结果的 Docker 上下文的名称。 对于 |
|
目标路径。 对于 对于 |
|
要使用的导出程序类型。 选项
|
|
构建环境的路径。 |
|
格式为 从 community.docker 3.10.0 开始,这可以是平台列表,而不仅仅是单个平台。 |
|
构建镜像时,下载 Dockerfile 中 FROM 镜像的任何更新。 选项
|
|
要公开给构建的密钥。 |
|
密钥的环境值。 仅支持并要求 |
|
密钥标识符。 密钥将在容器中作为文件在 |
|
密钥的源路径。 仅支持并要求 |
|
密钥的类型。 选项
|
|
省略单位默认为字节。如果完全省略大小,Docker 守护程序将使用 |
|
构建镜像时,指定中间构建阶段的名称作为最终镜像的最终阶段。 |
|
使用 TLS 保护与 API 的连接,无需验证 Docker 主机服务器的真实性。请注意,如果 如果任务中未指定此值,则将改用环境变量 选项
|
|
验证 Docker 主机服务器的真实性时,提供服务器的预期名称。 如果任务中未指定此值,则将改用环境变量 |
|
使用 TLS 保护与 API 的连接并验证 Docker 主机服务器的真实性。 如果任务中未指定此值,则将改用环境变量 选项
|
属性
属性 |
支持 |
描述 |
---|---|---|
操作组: community.docker.docker,docker |
在 |
|
支持:完全支持 |
可以在 |
|
支持:不支持 |
处于差异模式时,将返回有关已更改内容(或可能需要在 |
备注
注意
通过为每个任务提供参数或定义环境变量来连接到 Docker 守护程序。您可以定义
DOCKER_HOST
、DOCKER_TLS_HOSTNAME
、DOCKER_API_VERSION
、DOCKER_CERT_PATH
、DOCKER_TLS
、DOCKER_TLS_VERIFY
和DOCKER_TIMEOUT
。如果您使用的是 docker machine,请运行产品附带的设置环境的脚本。它将为您设置这些变量。有关更多详细信息,请参见 https://docs.docker.net.cn/machine/reference/env/。此模块**不**使用 Docker SDK for Python 与 Docker 守护程序通信。它直接调用 Docker CLI 程序。
另请参阅
另请参阅
- community.docker.docker_image_push
将 Docker 镜像推送到注册表。
- community.docker.docker_image_tag
使用新的名称和/或标签标记 Docker 镜像。
示例
- name: Build Python 3.12 image
community.docker.docker_image_build:
name: localhost/python/3.12:latest
path: /home/user/images/python
dockerfile: Dockerfile-3.12
- name: Build multi-platform image
community.docker.docker_image_build:
name: multi-platform-image
tag: "1.5.2"
path: /home/user/images/multi-platform
platform:
- linux/amd64
- linux/arm64/v8
返回值
常见返回值已在 此处 记录,以下是此模块特有的字段
键 |
描述 |
---|---|
受影响镜像的镜像检查结果。 返回:成功 示例: |