Модуль community.docker.docker_image_build – Построение образов Docker с помощью Docker buildx
Примечание
Этот модуль является частью коллекции community.docker (версия 3.13.0).
Эта коллекция, возможно, уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.docker. Для использования этого модуля необходимы дополнительные требования. Подробности см. в разделе Требования.
Чтобы использовать его в playbook, укажите: community.docker.docker_image_build.
Впервые появился в community.docker 3.6.0
Обзор
- Этот модуль позволяет создавать образы Docker с использованием плагина Docker buildx (BuildKit).
- Обратите внимание, что модуль не является идемпотентным в классическом понимании Ansible-модулей. Единственная проверка идемпотентности заключается в том, существует ли уже построенный образ. Эту проверку можно отключить с помощью параметра
rebuild.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- Клиентская утилита Docker с плагином Docker buildx
Параметры
Параметр | Комментарии |
|---|---|
api_version псевдонимы: docker_api_version строка | Версия API Docker, работающая на хосте Docker. По умолчанию используется последняя версия API, поддерживаемая этим сбором и демоном docker. Если значение не указано в задаче, будет использовано значение переменной окружения По умолчанию: |
args словарь | Предоставьте словарь Docker ожидает, что значение будет строкой. Для удобства все значения, отличные от строк, будут преобразованы в строки. |
ca_path псевдонимы: ca_cert, tls_ca_cert, cacert_path путь | Используйте сертификат CA при проверке сервера, указав путь к файлу сертификата CA. Если значение не указано в задаче и переменная окружения |
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-сокету для подключения к Docker API. Для подключения к удалённому хосту укажите строку TCP-соединения. Например, Если значение не указано в задаче, будет использовано значение переменной окружения Взаимоисключающее с |
dockerfile строка | Предоставьте альтернативное имя Dockerfile для использования при построении изображения. Это также может включать относительный путь (относительно |
etc_hosts словарь | Дополнительные хосты для добавления в Вместо IP-адреса также можно использовать специальное значение |
labels словарь | Словарь пар ключ-значение. |
name строка / обязательно | Имя изображения. Формат имени будет одним из: Обратите внимание, что идентификаторы изображений (хеши) и имена с дайджестом использовать нельзя. |
network строка | Сеть, используемая для инструкций по сборке |
nocache логическое значение | Не использовать кэш при построении изображения. Варианты:
|
outputs список / элементы=словарь добавлен в community.docker 3.10.0 | Назначение вывода. Вы можете указать список экспортеров для экспорта созданного образа в различные места. Обратите внимание, что не все экспортеры могут поддерживаться используемым драйвером сборки. Обратите внимание, что в зависимости от того, как используется этот параметр, образ с именем Передача пустого списка в этот параметр эквивалентна его отсутствию. По умолчанию используется один элемент с |
|
context строка |
Имя контекста Docker, в котором импортировать результат. Необязательно для |
|
dest путь |
Путь назначения. Обязательно для Необязательно для |
|
name строка |
Имя, под которым образ хранится. Если не указано, будут использоваться Необязательно для |
|
push булево |
Производить ли загрузку созданного образа в реестр. Используется только для Варианты:
|
|
type строка / обязательно |
Тип экспортера. Варианты:
|
path путь / обязательно | Путь для среды сборки. |
platform список / элементы=строка | Платформы в формате Начиная с community.docker 3.10.0, это может быть список платформ вместо одной. |
pull булево | При создании образа скачиваются любые обновления для образа FROM в Dockerfile. Варианты:
|
rebuild строка | |
secrets список / элементы=словарь добавлен в community.docker 3.10.0 | Секреты для раскрытия в процессе сборки. |
|
env строка |
Значение среды для секрета. Поддерживается и требуется только для |
|
id строка / обязательно |
Идентификатор секрета. Секрет будет доступен как файл в контейнере по адресу |
|
src путь |
Путь источника секрета. Поддерживается и требуется только для |
|
type строка / обязательно |
Тип секрета. Варианты:
|
|
значение строка |
Значение секрета. Примечание, что секрет будет передан в качестве переменной окружения Поддерживается и требуется только для |
shm_size строка | Размер Опускание единицы измерения по умолчанию означает байты. Если размер опустить полностью, демон Docker использует |
тег строка | |
цель строка | При создании изображения указывает промежуточную стадию сборки по имени как конечную стадию для результирующего изображения. |
tls логическое | Обеспечить безопасность подключения к API с использованием TLS без проверки подлинности хоста Docker. Обратите внимание, что если Если значение не указано в задаче, будет использоваться значение переменной окружения Варианты:
|
tls_hostname строка | При проверке подлинности хоста Docker укажите ожидаемое имя сервера. Если значение не указано в задаче, будет использоваться значение переменной окружения |
validate_certs псевдонимы: tls_verify логическое | Обеспечить безопасность подключения к API с использованием TLS и проверкой подлинности хоста Docker. Если значение не указано в задаче, будет использоваться значение переменной окружения Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
action_group | Группы действий: community.docker.docker, docker | Используйте |
check_mode | Поддержка: полная | Может работать в режиме |
diff_mode | Поддержка: нет | Вернет подробную информацию о том, что изменилось (или, возможно, требует изменения в |
Примечания
Примечание
- Подключение к демону 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 для 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
Значения возврата
Общие значения возврата документированы здесь, следующие являются полями, уникальными для этого модуля:
Ключ | Описание |
|---|---|
image словарь | Результаты проверки изображения для затронутого изображения. Возвращено: успешно Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/docker/docker_image_build_module.html