Spec-Zone.ru › Ansible

Модуль community.docker.docker_compose_v2_run — Запуск команды в новом контейнере сервиса Compose

Примечание

Этот модуль является частью коллекции community.docker (версия 3.13.0).

Эта коллекция может быть уже установлена, если используется пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.docker. Для использования этого модуля потребуются дополнительные компоненты. Подробнее см. Требования.

Чтобы использовать его в книге задач, укажите: community.docker.docker_compose_v2_run.

Новая версия в community.docker 3.13.0

  • Описание
  • Требования
  • Параметры
  • Атрибуты
  • Примечания
  • См. также
  • Примеры
  • Возвращаемые значения

Описание

  • Использует Docker Compose для запуска команды в новом контейнере для сервиса.
  • Это оболочка для docker compose run.

Требования

Ниже перечислены требования к хосту, на котором выполняется этот модуль.

  • Docker CLI с плагином Docker compose версии 2.18.0 или выше
  • PyYAML, если используется definition

Параметры

Параметр

Комментарии

api_version

aliases: docker_api_version

string

Версия Docker API, работающая на Docker Host.

По умолчанию используется последняя версия API, поддерживаемая этим сбором и демоном docker.

Если значение не указано в задаче, вместо него будет использовано значение переменной среды DOCKER_API_VERSION. Если переменная среды не установлена, будет использовано значение по умолчанию.

Default: "auto"

argv

list / elements=string

Команда для выполнения.

Поскольку это список аргументов, кавычки не требуются.

argv или command являются взаимоисключающими.

build

boolean

Сборка образа перед запуском контейнера.

Обратите внимание, что сборка может вставлять информацию в stdout или stderr.

Choices:

  • false ← (default)
  • true

ca_path

aliases: ca_cert, tls_ca_cert, cacert_path

path

Используйте сертификат центра сертификации при проверке сервера, указав путь к файлу сертификата центра сертификации.

Если значение не указано в задаче и установлена переменная среды DOCKER_CERT_PATH, будет использоваться файл ca.pem из каталога, указанного в переменной среды DOCKER_CERT_PATH.

cap_add

list / elements=string

Возможности Linux, которые нужно добавить в контейнер.

cap_drop

list / elements=string

Возможности Linux, которые нужно удалить из контейнера.

chdir

string

Каталог для запуска команды.

check_files_existing

boolean

added in community.docker 3.9.0

Если установлено в false, модуль не будет проверять, существует ли один из файлов compose.yaml, compose.yml, docker-compose.yaml, или docker-compose.yml в project_src если files не указан.

Это может быть полезно, если файлы среды с COMPOSE_FILE используются для настройки другого имени файла. В настоящее время модуль не проверяет COMPOSE_FILE в файлах среды или текущей среде.

Choices:

  • false
  • true ← (default)

cleanup

boolean

Автоматически удаляет контейнер после его завершения.

Соответствует опции --rm docker compose run.

Choices:

  • false ← (default)
  • true

cli_context

string

Контекст Docker CLI для использования.

Взаимоисключающий с docker_host.

client_cert

aliases: tls_client_cert, cert_path

path

Путь к файлу сертификата TLS клиента.

Если значение не указано в задаче и установлена переменная среды DOCKER_CERT_PATH, будет использоваться файл cert.pem из каталога, указанного в переменной среды DOCKER_CERT_PATH.

client_key

aliases: tls_client_key, key_path

path

Путь к файлу ключа TLS клиента.

Если значение не указано в задаче и установлена переменная среды DOCKER_CERT_PATH, будет использоваться файл key.pem из каталога, указанного в переменной среды DOCKER_CERT_PATH.

command

string

Команда для выполнения.

argv или command являются взаимоисключающими.

definition

dictionary

added in community.docker 3.9.0

Файл Compose, описывающий одну или несколько служб, сетей и томов.

Взаимоисключающий с project_src и files. Должен быть указан один из project_src и definition.

Если указан, PyYAML должен быть доступен этому модулю, и должен быть указан project_name.

Обратите внимание, что при использовании этого параметра будет создан временный каталог, который будет удален после завершения работы.

detach

boolean

Запускать ли команду синхронно (detach=false, по умолчанию) или асинхронно (detach=true).

Если установлено в true, stdin не может быть предоставлено, и возвращаемые значения stdout, stderr и rc не возвращаются. Вместо этого возвращается значение container_id.

Варианты:

  • false ← (по умолчанию)
  • true

docker_cli

path

Путь к Docker CLI. Если не указан, будет искать Docker CLI на PATH.

docker_host

aliases: docker_url

string

URL или путь к сокету Unix, используемый для подключения к API Docker. Для подключения к удаленному хосту укажите строку TCP-подключения. Например, tcp://192.0.2.23:2376. Если для шифрования соединения используется TLS, модуль автоматически заменит tcp в URL-адресе соединения на https.

Если значение не указано в задаче, вместо него будет использоваться значение переменной среды DOCKER_HOST. Если переменная среды не установлена, будет использовано значение по умолчанию.

Взаимоисключающий с cli_context. Если ни docker_host, ни cli_context не предоставлены, используется значение unix:///var/run/docker.sock.

entrypoint

string

Переопределить точку входа образа контейнера.

env

dictionary

Словарь переменных среды с их соответствующими значениями, которые будут переданы команде, запущенной внутри контейнера.

Значения, которые могут быть интерпретированы как числа, булевы значения или другие типы парсером YAML, должны быть заключены в кавычки (например, "true") во избежание потери данных.

Обратите внимание, что если вы передаете значения с помощью шаблонов Jinja2, например "{{ value }}", вам необходимо добавить | string, чтобы предотвратить преобразование Ansible строк, таких как "true", обратно в булевы значения. Правильный способ — использовать "{{ value | string }}".

env_files

list / elements=path

По умолчанию файлы среды загружаются из файла .env, расположенного непосредственно в каталоге project_src.

env_files можно использовать для указания пути одного или нескольких пользовательских файлов среды.

Путь указывается относительно каталога project_src.

files

list / elements=path

добавлено в community.docker 3.7.0

Список имен файлов Compose относительно project_src, которые будут использоваться вместо основного файла Compose (compose.yml, compose.yaml, docker-compose.yml или docker-compose.yaml).

Файлы загружаются и объединяются в указанном порядке.

Взаимоисключающий с definition.

interactive

boolean

Оставлять ли STDIN открытым, даже если не прикреплен.

Варианты:

  • false
  • true ← (по умолчанию)

labels

list / elements=string

Добавить или переопределить метки контейнера.

name

string

Присвоить имя контейнеру.

no_deps

boolean

Не запускать связанные сервисы.

Варианты:

  • false ← (по умолчанию)
  • true

profiles

list / elements=string

Список профилей для включения при запуске сервисов.

Эквивалент docker compose --profile.

project_name

string

Указать имя проекта. Если не указано, имя проекта берется из базового имени project_src.

Обязательно, если предоставлено definition.

project_src

path

Путь к каталогу, содержащему файл Compose (compose.yml, compose.yaml, docker-compose.yml или docker-compose.yaml).

Если предоставлен files, будет искать эти файлы в этом каталоге.

Взаимоисключающий с definition. Должен быть предоставлен один из project_src и definition.

publish

list / elements=string

Опубликовать порт(ы) контейнера на хосте.

quiet_pull

boolean

Выполнить извлечение без вывода информации о ходе выполнения.

Обратите внимание, что извлечение может вставлять информацию в stdout или stderr.

Варианты:

  • false ← (по умолчанию)
  • true

remove_orphans

boolean

Удалить контейнеры для сервисов, не определенных в файле Compose.

Варианты:

  • false ← (по умолчанию)
  • true

service

строка / обязательно

Служба, в которой нужно запустить команду.

service_ports

логическое

Запустить команду со всеми портами службы, включенными и сопоставленными с хостом.

Варианты:

  • false ← (по умолчанию)
  • true

stdin

строка

Установить stdin команды непосредственно на указанное значение.

Можно использовать только, если detach=false.

stdin_add_newline

логическое

Если установлено в true, добавляет перевод строки в stdin.

Варианты:

  • false
  • true ← (по умолчанию)

strip_empty_ends

логическое

Удаляет пустые строки из конца stdout/stderr в результате.

Варианты:

  • false
  • true ← (по умолчанию)

tls

логическое

Защитить подключение к API с использованием TLS без проверки подлинности сервера Docker-хоста. Обратите внимание, что если validate_certs также установлено в true, оно будет иметь приоритет.

Если значение не указано в задаче, будет использовано значение переменной окружения DOCKER_TLS. Если переменная окружения не установлена, будет использовано значение по умолчанию.

Варианты:

  • false ← (по умолчанию)
  • true

tls_hostname

строка

При проверке подлинности сервера Docker-хоста укажите ожидаемое имя сервера.

Если значение не указано в задаче, будет использовано значение переменной окружения DOCKER_TLS_HOSTNAME. Если переменная окружения не установлена, будет использовано значение по умолчанию.

tty

логическое

Выделить TTY.

Варианты:

  • false
  • true ← (по умолчанию)

use_aliases

логическое

Использовать сетевые псевдонимы службы useAliases в сети (сетях), к которой подключен контейнер.

Варианты:

  • false ← (по умолчанию)
  • true

user

строка

Если указано, пользователь, с которым будет выполняться эта команда.

validate_certs

псевдонимы: tls_verify

логическое

Защитить подключение к API с помощью TLS и проверить подлинность сервера Docker-хоста.

Если значение не указано в задаче, будет использовано значение переменной окружения DOCKER_TLS_VERIFY. Если переменная окружения не установлена, будет использовано значение по умолчанию.

Варианты:

  • false ← (по умолчанию)
  • true

volumes

список / элементы=строка

Привязка одного или нескольких томов.

Атрибуты

Атрибут

Поддержка

Описание

action_group

Группы действий: community.docker.docker, docker

Используйте group/docker или group/community.docker.docker в module_defaults для установки значений по умолчанию для этого модуля.

check_mode

Поддержка: нет

Может работать в check_mode и возвращать прогноз изменённого статуса без изменения целевого объекта.

diff_mode

Поддержка: нет

При использовании режима сравнения вернёт подробности о том, что было изменено (или, возможно, нуждается в изменении в check_mode).

Примечания

Примечание

  • Если вам нужно оценить переменные среды контейнера в command или argv, необходимо передать команду через оболочку, например, command=/bin/sh -c "echo $ENV_VARIABLE".
  • Подключаемый модуль Docker Compose CLI не имеет стабильного формата вывода (см., например, https://github.com/docker/compose/issues/10872), и для основных операций также нет машиночитаемого формата вывода. Модуль пытается учесть это с помощью различных корректировок поведения, зависящих от версии, и с помощью тестирования более старых и новых версий подключаемого модуля Docker Compose CLI. В настоящее время модуль тестируется с несколькими версиями плагина между 2.18.1 и 2.23.3. Точный список версий плагина со временем изменится. Новые версии плагина Docker Compose CLI могут в любое время нарушить работу этого модуля.
  • Подключитесь к демону 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_compose_v2

Управление многоконтейнерными приложениями Docker с помощью подключаемого модуля Docker Compose CLI.

Примеры

- name: Run a simple command (command)
  community.docker.docker_compose_v2_run:
    service: foo
    command: /bin/bash -c "ls -lah"
    chdir: /root
  register: result

- name: Print stdout
  ansible.builtin.debug:
    var: result.stdout

- name: Run a simple command (argv)
  community.docker.docker_compose_v2_run:
    service: foo
    argv:
      - /bin/bash
      - "-c"
      - "ls -lah > /dev/stderr"
    chdir: /root
  register: result

- name: Print stderr lines
  ansible.builtin.debug:
    var: result.stderr_lines

Значения возврата

Общие значения возврата описаны здесь, следующие являются полями, уникальными для данного модуля:

Ключ

Описание

container_id

строка

Идентификатор созданного контейнера.

Возвращается: при успехе и detach=true

rc

целое число

Код завершения команды.

Возвращается: при успехе и detach=false

Пример: 0

stderr

строка

Вывод стандартной ошибки команды контейнера.

Возвращается: при успехе и detach=false

stdout

строка

Вывод стандартного вывода команды контейнера.

Возвращается: при успехе и detach=false

Авторы

  • Felix Fontein (@felixfontein)

Ссылки на коллекцию

  • Система отслеживания задач
  • Репозиторий (исходные коды)
  • Задайте вопрос (Docker)
  • Задайте вопрос (Docker Compose)
  • Задайте вопрос (Docker Swarm)
  • Отправить отчет об ошибке
  • Запросить новую функцию
  • Связь

© 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_compose_v2_run_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API