Модуль community.docker.docker_compose_v2 — управление многоконтейнерными приложениями Docker с помощью плагина Docker Compose CLI
Примечание
Этот модуль входит в коллекцию community.docker (версия 5.2.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.docker. Для использования этого модуля необходимы дополнительные компоненты; подробную информацию см. в разделе Требования.
Чтобы использовать модуль в сценарии, укажите: community.docker.docker_compose_v2.
Добавлено в community.docker 3.6.0
Краткое описание
- Использует Docker Compose для запуска или остановки служб.
Требования
Следующие требования должны быть выполнены на хосте, где выполняется этот модуль.
- Docker CLI с плагином Docker Compose версии 2.18.0 или новее
- PyYAML, если используется
definition
Параметры
Параметр | Комментарии |
|---|---|
api_version псевдонимы: docker_api_version строка | Версия Docker API, работающего на хосте Docker. По умолчанию используется последняя версия API, поддерживаемая этой коллекцией и службой Docker. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения По умолчанию: |
assume_yes логическое значение добавлено в community.docker 4.5.0 | Если значение равно Сейчас запрос появляется, когда том, не соответствующий требованиям, нужно создать заново. Значение Этот параметр доступен только в Docker Compose 2.32.0 или новее. Варианты:
|
build строка | Нужно ли собирать образы перед запуском контейнеров. Используется при выполнении
Варианты:
|
ca_path псевдонимы: ca_cert, tls_ca_cert, cacert_path путь | Используйте сертификат ЦС для проверки сервера, указав путь к файлу сертификата ЦС. Если значение не указано в задаче, а переменная окружения |
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. Если значение не указано в задаче, а переменная окружения |
definition словарь добавлено в community.docker 3.9.0 | Файл Compose с описанием одной или нескольких служб, сетей и томов. Несовместим с Если этот параметр указан, для модуля должен быть доступен PyYAML, а также необходимо указать Обратите внимание, что при использовании этого параметра будет создан временный каталог, который затем будет удален. |
dependencies логическое значение | Если Варианты:
|
docker_cli путь | Путь к Docker CLI. Если не указан, Docker CLI будет найден в |
docker_host псевдонимы: docker_url строка | URL или путь к сокету Unix для подключения к Docker API. Для подключения к удаленному хосту укажите строку TCP-подключения. Например, Если значение не указано в задаче, вместо него будет использовано значение переменной окружения Несовместим с |
env_files список / элементы=путь | По умолчанию файлы окружения загружаются из файла Параметр Путь указывается относительно каталога |
files список / элементы=путь добавлено в community.docker 3.7.0 | Список имен файлов Compose относительно Файлы загружаются и объединяются в указанном порядке. Несовместим с |
ignore_build_events логическое значение добавлено в community.docker 4.2.0 | Игнорирует события сборки образов при определении изменений. Если Обратите внимание, что Docker Compose 2.31.0 — первая версия Compose 2.x, которая генерирует события сборки. В более ранних версиях поведение всегда соответствует Варианты:
|
profiles список / элементы=строка | Список профилей, включаемых при запуске служб. Эквивалентно |
project_name строка | Укажите имя проекта. Если оно не указано, имя проекта берется из имени базового каталога Обязательно, если указан |
project_src путь | Путь к каталогу, содержащему файл Compose ( Если указан Несовместим с |
pull строка | Нужно ли загружать образы перед запуском. Используется при выполнении
Варианты:
|
recreate строка | По умолчанию контейнеры создаются заново, если их конфигурация отличается от описания службы. Значение Значение Варианты:
|
remove_images строка | Используйте вместе с Варианты:
|
remove_orphans логическое значение | Удалить контейнеры служб, не определенных в файле Compose. Варианты:
|
remove_volumes логическое значение | |
renew_anon_volumes логическое значение добавлено в community.docker 4.0.0 | Пересоздавать анонимные тома вместо повторного использования томов из предыдущих контейнеров.
Варианты:
|
scale словарь добавлено в community.docker 3.7.0 | Задает масштаб служб при выполнении Укажите словарь пар «ключ/значение», где ключ — имя службы, а значение — целое число контейнеров. |
services список / элементы=строка | Указывает подмножество служб, к которым следует применить действие. |
state строка | Требуемое состояние проекта.
Варианты:
|
timeout целое число | Время ожидания в секундах при остановке контейнеров в подключенном режиме или если контейнеры уже запущены. |
tls логическое значение | Защитить соединение с API с помощью TLS без проверки подлинности сервера хоста Docker. Обратите внимание: если для Если значение не указано в задаче, вместо него будет использовано значение переменной окружения Варианты:
|
tls_hostname строка | При проверке подлинности сервера хоста Docker укажите ожидаемое имя сервера. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения |
validate_certs псевдонимы: tls_verify логическое значение | Защитить соединение с API с помощью TLS и проверить подлинность сервера хоста Docker. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения Варианты:
|
wait логическое значение добавлено в community.docker 3.8.0 | При выполнении Время ожидания можно задать параметром Варианты:
|
wait_timeout целое число добавлено в community.docker 3.8.0 | Если |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
action_group | Группы действий: community.docker.docker, docker | Используйте |
check_mode | Поддержка: полная В режиме проверки загрузка образа не приводит к изменению результата. | Может выполняться в режиме |
diff_mode | Поддержка: нет | В режиме сравнения будет возвращена информация об изменениях (или возможных изменениях в |
idempotent | Поддержка: частичная Если | При повторном запуске с теми же аргументами вне режима проверки второй вызов указывает на отсутствие изменений. Предполагается, что система, контролируемая или запрашиваемая модулем, не изменилась существенным образом. |
Примечания
Примечание
- У плагина командной строки Docker Compose нет стабильного формата вывода (см., например, https://github.com/docker/compose/issues/10872), а для основных операций также нет формата вывода, удобного для машинной обработки. Модуль пытается учесть это с помощью различных корректировок поведения, зависящих от версии, а также тестирования старых и новых версий плагина командной строки Docker Compose. В настоящее время модуль тестируется с несколькими версиями плагина от 2.18.1 до 2.23.3. Точный список версий плагина будет меняться со временем. Новые выпуски плагина командной строки Docker Compose могут в любой момент нарушить работу этого модуля.
- Подключитесь к демону 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_compose_v2_pull
-
Загрузить проект Docker Compose.
Примеры
---
# Examples use the django example at https://docs.docker.com/compose/django. Follow it to create the
# flask directory
- name: Run using a project directory
hosts: localhost
gather_facts: false
tasks:
- name: Tear down existing services
community.docker.docker_compose_v2:
project_src: flask
state: absent
- name: Create and start services
community.docker.docker_compose_v2:
project_src: flask
register: output
- name: Show results
ansible.builtin.debug:
var: output
- name: Run `docker compose up` again
community.docker.docker_compose_v2:
project_src: flask
register: output
- name: Show results
ansible.builtin.debug:
var: output
- ansible.builtin.assert:
that: not output.changed
- name: Stop all services
community.docker.docker_compose_v2:
project_src: flask
state: stopped
register: output
- name: Show results
ansible.builtin.debug:
var: output
- name: Verify that web and db services are not running
ansible.builtin.assert:
that:
- web_container.State != 'running'
- db_container.State != 'running'
vars:
web_container: >-
{{ output.containers | selectattr("Service", "equalto", "web") | first }}
db_container: >-
{{ output.containers | selectattr("Service", "equalto", "db") | first }}
- name: Restart services
community.docker.docker_compose_v2:
project_src: flask
state: restarted
register: output
- name: Show results
ansible.builtin.debug:
var: output
- name: Verify that web and db services are running
ansible.builtin.assert:
that:
- web_container.State == 'running'
- db_container.State == 'running'
vars:
web_container: >-
{{ output.containers | selectattr("Service", "equalto", "web") | first }}
db_container: >-
{{ output.containers | selectattr("Service", "equalto", "db") | first }}
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, относящиеся только к этому модулю:
Ключ | Описание |
|---|---|
actions list / elements=dictionary | Список выполненных действий. Возвращается: success |
|
id string |
Идентификатор изменённого ресурса. Возвращается: success Пример: |
|
status string |
Произошедшее изменение статуса. Возвращается: success Возможные значения:
Пример: |
|
what string |
Тип изменённого ресурса. Возвращается: success Возможные значения:
Пример: |
containers list / elements=dictionary | Список контейнеров, связанных со службой. Возвращается: success |
|
Command any |
Команда контейнера. Возвращается: success |
|
CreatedAt string |
Время создания контейнера. Возвращается: success Пример: |
|
ExitCode integer |
Код завершения контейнера. Возвращается: success |
|
Health any |
Проверка состояния контейнера. Возвращается: success |
|
ID string |
Идентификатор контейнера. Возвращается: success Пример: |
|
Image string |
Образ контейнера. Возвращается: success |
|
Labels dictionary |
Метки этого контейнера. Возвращается: success |
|
LocalVolumes string |
Количество локальных томов. Возвращается: success |
|
Mounts string |
Точки монтирования. Возвращается: success |
|
Name string |
Основное имя контейнера. Возвращается: success |
|
Names list / elements=string |
Список имён контейнера. Возвращается: success |
|
Networks list / elements=string |
Список сетей, подключённых к этому контейнеру. Возвращается: success |
|
Ports string |
Список сопоставлений портов в виде строки. Возвращается: success |
|
Publishers list / elements=dictionary |
Список назначений портов. Возвращается: success |
|
Protocol string |
Протокол. Возвращается: success Возможные значения:
|
|
PublishedPort integer |
Опубликованный порт. Возвращается: success |
|
TargetPort integer |
Порт контейнера, на который перенаправляется опубликованный порт. Возвращается: success |
|
URL string |
Интерфейс, к которому привязан порт. Возвращается: success |
|
RunningFor string |
Время работы контейнера. Возвращается: success |
|
Service string |
Имя службы. Возвращается: success |
|
Size string |
Размер контейнера. Возвращается: success Пример: |
|
State string |
Состояние контейнера. Возвращается: success Пример: |
|
Status string |
Статус контейнера. Возвращается: success Пример: |
images list / elements=dictionary | Список образов, связанных со службой. Возвращается: success |
|
ContainerName string |
Имя контейнера, в котором используется этот образ. Возвращается: success |
|
ID string |
Идентификатор образа. Возвращается: success Пример: |
|
Repository string |
Репозиторий, к которому относится этот образ. Возвращается: success |
|
Size integer |
Размер образа в байтах. Возвращается: success |
|
Tag string |
Тег образа. Возвращается: success |
Ссылки коллекции
© 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_module.html