Модуль community.docker.docker_image_build — сборка образов Docker с помощью Docker buildx
Примечание
Этот модуль входит в коллекцию community.docker (версия 5.2.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 с помощью плагина Docker buildx (BuildKit).
- Обратите внимание: модуль не является идемпотентным в том смысле, который обычно подразумевается для модулей Ansible. Проверяется только то, существует ли уже собранный образ. Эту проверку можно отключить с помощью параметра
rebuild.
Требования
На узле, где выполняется этот модуль, необходимы следующие компоненты.
- Docker CLI с плагином Docker buildx
Параметры
Параметр | Комментарии |
|---|---|
api_version псевдонимы: docker_api_version строка | Версия API Docker, работающего на узле Docker. По умолчанию используется последняя версия API, поддерживаемая этой коллекцией и службой Docker daemon. Если значение не указано в задаче, вместо него используется значение переменной среды По умолчанию: |
args словарь | Укажите словарь аргументов сборки Docker ожидает, что значение будет строкой. Для удобства любые значения, не являющиеся строками, будут преобразованы в строки. |
ca_path псевдонимы: ca_cert, tls_ca_cert, cacert_path путь | Используйте сертификат центра сертификации для проверки сервера, указав путь к файлу сертификата центра сертификации. Если значение не указано в задаче, а переменная среды |
cache_from список / элементы=строка | Список имен образов, которые следует рассматривать как источники кэша. |
cli_context строка | Контекст Docker CLI, который следует использовать. Взаимоисключающий параметр с |
client_cert псевдонимы: tls_client_cert, cert_path путь | Путь к файлу клиентского сертификата TLS. Если значение не указано в задаче, а переменная среды |
client_key псевдонимы: tls_client_key, key_path путь | Путь к файлу клиентского ключа TLS. Если значение не указано в задаче, а переменная среды |
docker_cli путь | Путь к Docker CLI. Если он не указан, Docker CLI будет искаться в |
docker_host псевдонимы: docker_url строка | URL или путь к сокету Unix, используемый для подключения к API Docker. Чтобы подключиться к удаленному узлу, укажите строку TCP-подключения. Например, Если значение не указано в задаче, вместо него используется значение переменной среды Взаимоисключающий параметр с |
dockerfile строка | Укажите альтернативное имя Dockerfile, который будет использоваться при сборке образа. Также можно указать относительный путь (относительно |
etc_hosts словарь | Дополнительные узлы, добавляемые в Вместо IP-адреса можно также использовать специальное значение |
labels словарь | Словарь пар «ключ — значение». |
name строка / обязательный | Имя образа. Формат имени может быть одним из следующих: Обратите внимание, что идентификаторы образов (хеши) и имена с дайджестом использовать нельзя. |
network строка | Сеть, используемая для инструкций сборки |
nocache логическое значение | Не использовать кэш при сборке образа. Варианты:
|
outputs список / элементы=словарь добавлено в community.docker 3.10.0 | Назначения для вывода. Можно указать список экспортеров, чтобы экспортировать собранный образ в различные места. Обратите внимание, что используемый драйвер сборки может поддерживать не все экспортеры. В зависимости от использования этого параметра образ с именем Пустой список, указанный для этого параметра, эквивалентен отсутствию параметра. По умолчанию используется одна запись с Обратите внимание, что начиная с community.docker 4.2.0 добавляется запись для |
|
context строка |
Имя контекста Docker, в который следует импортировать результат. Необязателен для |
|
dest путь |
Путь назначения. Обязателен для Необязателен для |
|
name список / элементы=строка |
Имя или имена, под которыми сохраняется образ. Если значение не указано, будут использоваться Необязателен для Начиная с community.docker 4.2.0 это может быть список строк. |
|
push логическое значение |
Следует ли отправлять собранный образ в реестр. Используется только для Варианты:
|
|
type строка / обязательный |
Тип экспортера, который следует использовать. Варианты:
|
path путь / обязательный | Путь к среде сборки. |
platform список / элементы=строка | Платформы в формате Начиная с community.docker 3.10.0 здесь можно указать список платформ, а не только одну платформу. |
pull логическое значение | При сборке образа загружать все обновления образа FROM из Dockerfile. Варианты:
|
rebuild строка | |
secrets список / элементы=словарь добавлено в community.docker 3.10.0 | Секреты, предоставляемые процессу сборки. |
|
env строка |
Значение секрета в среде. Поддерживается и является обязательным только для |
|
id строка / обязательный |
Идентификатор секрета. Секрет будет доступен в контейнере в виде файла по пути |
|
src путь |
Исходный путь к секрету. Поддерживается и является обязательным только для |
|
type строка / обязательный |
Тип секрета. Варианты:
|
|
value строка |
Значение секрета. Обратите внимание, что секрет будет передан в Поддерживается и является обязательным только для |
shm_size строка | Размер Если единица измерения не указана, по умолчанию используются байты. Если размер не указан, служба Docker daemon использует |
tag строка | |
target строка | При сборке образа указывает промежуточный этап сборки по имени, который будет использоваться как конечный этап результирующего образа. |
tls логическое значение | Защитить соединение с API с помощью TLS, не проверяя подлинность сервера узла Docker. Обратите внимание: если Если значение не указано в задаче, вместо него используется значение переменной среды Варианты:
|
tls_hostname строка | При проверке подлинности сервера узла Docker укажите ожидаемое имя сервера. Если значение не указано в задаче, вместо него используется значение переменной среды |
validate_certs псевдонимы: tls_verify логическое значение | Защитить соединение с API с помощью TLS и проверить подлинность сервера узла Docker. Если значение не указано в задаче, вместо него используется значение переменной среды Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
action_group | Группы действий: community.docker.docker, docker | Используйте |
check_mode | Поддержка: полная | Может выполняться в режиме |
diff_mode | Поддержка: отсутствует | В режиме diff будут возвращены сведения об изменениях (или о том, что, возможно, требуется изменить в |
idempotent | Поддержка: частичная Если | При повторном запуске с теми же аргументами вне режима проверки второй вызов указывает на отсутствие изменений. Предполагается, что система, которой управляет модуль или к которой он обращается, не изменилась существенным образом. |
Примечания
Примечание
- Подключиться к демону Docker можно, передав параметры в каждой задаче или задав переменные среды. Можно определить
DOCKER_HOST,DOCKER_TLS_HOSTNAME,DOCKER_API_VERSION,DOCKER_CERT_PATH,DOCKER_TLS,DOCKER_TLS_VERIFYиDOCKER_TIMEOUT. Если вы используете docker machine, запустите поставляемый с продуктом скрипт, который настраивает среду. Он задаст эти переменные за вас. Подробнее см. в разделе https://docs.docker.com/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
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
command список / элементы=строка добавлено в community.docker 4.2.0 | Выполненная команда. Возвращается: при успехе и некоторых сбоях |
image словарь | Результаты проверки затронутого образа. Возвращается: при успехе Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/docker/docker_image_build_module.html