Модуль community.docker.docker_compose_v2_exec — запуск команды в контейнере сервиса Compose
Примечание
Этот модуль входит в коллекцию community.docker (версия 5.2.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в состав ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install community.docker. Для использования этого модуля требуются дополнительные компоненты; подробности см. в разделе Требования.
Чтобы использовать модуль в сценарии, укажите: community.docker.docker_compose_v2_exec.
Добавлено в community.docker 3.13.0
Краткое описание
- Использует Docker Compose для запуска команды в контейнере сервиса.
- Можно использовать для запуска разовых команд в контейнере существующего сервиса; модуль инкапсулирует
docker compose exec.
Требования
На узле, выполняющем этот модуль, должны быть установлены следующие компоненты.
- Docker CLI с подключаемым модулем Docker Compose версии 2.18.0 или новее
- PyYAML, если используется
definition
Параметры
Параметр | Комментарии |
|---|---|
api_version псевдонимы: docker_api_version строка | Версия Docker API, работающего на узле Docker. По умолчанию используется последняя версия API, поддерживаемая этой коллекцией и демоном Docker. Если значение не указано в задаче, вместо него будет использоваться значение переменной окружения По умолчанию: |
argv список / элементы=строка | |
ca_path псевдонимы: ca_cert, tls_ca_cert, cacert_path путь | Используйте сертификат центра сертификации для проверки сервера, указав путь к файлу сертификата центра сертификации. Если значение не указано в задаче, а переменная окружения |
chdir строка | Каталог, в котором будет выполняться команда. |
check_files_existing логическое значение добавлено в community.docker 3.9.0 | Если задано значение Это может быть полезно, если для настройки другого имени файла используются файлы окружения с Варианты:
|
cli_context строка | Контекст Docker CLI, который следует использовать. Взаимоисключающий с |
client_cert псевдонимы: tls_client_cert, cert_path путь | Путь к файлу TLS-сертификата клиента. Если значение не указано в задаче, а переменная окружения |
client_key псевдонимы: tls_client_key, key_path путь | Путь к файлу TLS-ключа клиента. Если значение не указано в задаче, а переменная окружения |
command строка | |
definition словарь добавлено в community.docker 3.9.0 | Файл Compose с описанием одной или нескольких служб, сетей и томов. Взаимоисключающий с Если этот параметр указан, для модуля должен быть доступен PyYAML, а также необходимо указать Обратите внимание, что при использовании этого параметра будет создан временный каталог, который затем будет удалён. |
detach логическое значение | Следует ли выполнять команду синхронно ( Если задано значение Варианты:
|
docker_cli путь | Путь к Docker CLI. Если он не указан, Docker CLI будет найден в |
docker_host псевдонимы: docker_url строка | URL или путь к сокету Unix, используемый для подключения к Docker API. Для подключения к удалённому узлу укажите строку TCP-подключения. Например, Если значение не указано в задаче, вместо него будет использоваться значение переменной окружения Взаимоисключающий с |
env словарь | Словарь переменных окружения и соответствующих им значений, передаваемых команде, выполняемой внутри контейнера. Значения, которые парсер YAML может интерпретировать как числа, логические значения или другие типы, необходимо заключать в кавычки (например, Обратите внимание: если вы передаёте значения с помощью шаблонов Jinja2, например |
env_files список / элементы=путь | По умолчанию файлы окружения загружаются из файла Параметр Путь указывается относительно каталога |
files список / элементы=путь добавлено в community.docker 3.7.0 | Список имён файлов Compose относительно Файлы загружаются и объединяются в указанном порядке. Взаимоисключающий с |
index целое число | Индекс контейнера, в котором нужно выполнить команду, если у службы несколько реплик. |
privileged логическое значение | Следует ли предоставить процессу расширенные привилегии. Варианты:
|
profiles список / элементы=строка | Список профилей, которые нужно включить при запуске служб. Эквивалентен |
project_name строка | Задаёт имя проекта. Если оно не указано, имя проекта берётся из базового имени Обязателен, если указан |
project_src путь | Путь к каталогу, содержащему файл Compose ( Если указан Взаимоисключающий с |
service строка / обязательный | Служба, в контейнере которой нужно выполнить команду. |
stdin строка | Задать стандартный ввод команды напрямую указанным значением. Можно использовать только в том случае, если |
stdin_add_newline логическое значение | Если задано значение Варианты:
|
strip_empty_ends логическое значение | Удалять пустые строки в конце stdout/stderr результата. Варианты:
|
tls логическое значение | Защитить соединение с API с помощью TLS без проверки подлинности сервера узла Docker. Обратите внимание: если для Если значение не указано в задаче, вместо него будет использоваться значение переменной окружения Варианты:
|
tls_hostname строка | При проверке подлинности сервера узла Docker укажите ожидаемое имя сервера. Если значение не указано в задаче, вместо него будет использоваться значение переменной окружения |
tty логическое значение | Следует ли выделить TTY. Варианты:
|
user строка | Если задано, пользователь, от имени которого выполняется команда. |
validate_certs псевдонимы: tls_verify логическое значение | Защитить соединение с API с помощью TLS и проверить подлинность сервера узла Docker. Если значение не указано в задаче, вместо него будет использоваться значение переменной окружения Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
action_group | Группы действий: community.docker.docker, docker | Используйте |
check_mode | Поддержка: нет | Может выполняться в режиме |
diff_mode | Поддержка: нет | В режиме сравнения будут возвращены сведения об изменениях (или о возможных изменениях в |
idempotent | Поддержка: не применимо Идемпотентность выполненной команды зависит от самой команды. | При повторном запуске с теми же аргументами вне режима проверки модуль сообщает об отсутствии изменений. Предполагается, что система, которой управляет модуль или состояние которой он запрашивает, не изменилась существенным образом. |
Примечания
Примечание
- Если вам нужно вычислять переменные окружения контейнера в
commandилиargv, необходимо передать команду через оболочку, напримерcommand=/bin/sh -c "echo $ENV_VARIABLE". То же самое нужно сделать, если вы хотите использовать шаблоны glob или другие возможности оболочки, например перенаправление. - У подключаемого модуля 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_exec:
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_exec:
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
Возвращаемые значения
Общие возвращаемые значения описаны здесь, ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
rc integer | |
stderr string | Стандартный поток ошибок команды контейнера. Возвращается: при успехе и |
stdout string | Стандартный вывод команды контейнера. Возвращается: при успехе и |
Ссылки на коллекцию
© 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_compose_v2_exec_module.html