Модуль community.docker.docker_compose_v2 – Управление многоконтейнерными приложениями Docker с плагином Docker Compose CLI
Примечание
Этот модуль входит в коллекцию community.docker (версия 3.13.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. Если значение не указано в задаче, будет использовано значение переменной среды По умолчанию: |
build строка | Строить ли образы перед запуском контейнеров. Это используется, когда
Доступные значения:
|
ca_path псевдонимы: ca_cert, tls_ca_cert, cacert_path путь | Использовать сертификат CA при проверке сервера, указав путь к файлу сертификата CA. Если значение не указано в задаче, а переменная среды |
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 list / elements=path added in community.docker 3.7.0 | Список имен файлов Compose относительно Файлы загружаются и объединяются в указанном порядке. Взаимоисключающий с |
profiles list / elements=string | Список профилей для включения при запуске сервисов. Эквивалентно |
project_name string | Укажите имя проекта. Если не указано, имя проекта берется из базового имени Обязательно, если указан |
project_src path | Путь к каталогу, содержащему файл Compose ( Если указан Взаимоисключающий с |
pull string | Загружать ли образы перед запуском. Используется при запуске
Варианты:
|
recreate string | По умолчанию контейнеры будут пересозданы, когда их конфигурация отличается от определения сервиса. Установка в Установка в Варианты:
|
remove_images string | Используйте с Варианты:
|
remove_orphans boolean | Удаляет контейнеры для сервисов, не определенных в файле Compose. Варианты:
|
remove_volumes boolean | |
scale dictionary added in community.docker 3.7.0 | Определяет, как масштабировать сервисы при запуске Укажите словарь пар ключ/значение, где ключ — имя сервиса, а значение — целое число, указывающее количество контейнеров. |
services list / elements=string | Указывает подмножество сервисов, которые нужно использовать. |
state string | Требуемое состояние проекта.
Варианты:
|
timeout integer | Таймаут в секундах для остановки контейнера при подключении или когда контейнеры уже запущены. |
tls boolean | Обеспечивает безопасное соединение с API с помощью TLS без проверки подлинности сервера хоста Docker. Обратите внимание, что если Если значение не указано в задаче, вместо него будет использовано значение переменной окружения Варианты:
|
tls_hostname string | При проверке подлинности сервера хоста Docker укажите ожидаемое имя сервера. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения |
validate_certs aliases: tls_verify boolean | Защитите соединение с API, используя TLS и проверяя подлинность сервера хоста Docker. Если значение не указано в задаче, будет использовано значение переменной среды Варианты:
|
wait boolean added in community.docker 3.8.0 | При запуске Таймаут может быть задан с помощью параметра Варианты:
|
wait_timeout integer added in community.docker 3.8.0 | При |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
action_group | Группы действий: community.docker.docker, docker | Используйте |
check_mode | Поддержка: полная В режиме проверки извлечение изображения не приводит к изменению результата. | Может работать в режиме |
diff_mode | Поддержка: нет | В режиме сравнения будет возвращена информация о том, что изменилось (или, возможно, нуждается в изменении в |
Примечания
Примечание
- Плагин 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
-
Управление многоконтейнерными приложениями Docker с помощью Docker Compose V1.
- 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 список / элементы=словарь | Список действий, которые были применены. Возвращаемое значение: успех |
|
id строка |
Идентификатор ресурса, который был изменён. Возвращаемое значение: успех Пример: |
|
status строка |
Произошедшее изменение статуса. Возвращаемое значение: успех Может возвращать только:
Пример: |
|
what строка |
Тип изменённого ресурса. Возвращаемое значение: успех Может возвращать только:
Пример: |
containers список / элементы=словарь | Список контейнеров, связанных со службой. Возвращаемое значение: успех |
|
Command любой |
Команда контейнера. Возвращаемое значение: успех |
|
CreatedAt строка |
Отметка времени создания контейнера. Возвращаемое значение: успех Пример: |
|
ExitCode целое число |
Код завершения контейнера. Возвращаемое значение: успех |
|
Health любой |
Проверка работоспособности контейнера. Возвращаемое значение: успех |
|
ID строка |
Идентификатор контейнера. Возвращаемое значение: успех Пример: |
|
Image строка |
Изображение контейнера. Возвращаемое значение: успех |
|
Labels словарь |
Метки для этого контейнера. Возвращаемое значение: успех |
|
LocalVolumes строка |
Количество локальных томов. Возвращаемое значение: успех |
|
Mounts строка |
Точки монтирования. Возвращаемое значение: успех |
|
Name строка |
Основное имя контейнера. Возвращаемое значение: успех |
|
Names список / элементы=строка |
Список имён контейнера. Возвращаемое значение: успех |
|
Networks список / элементы=строка |
Список сетей, подключённых к контейнеру. Возвращаемое значение: успех |
|
Ports строка |
Список назначений портов в виде строки. Возвращаемое значение: успех |
|
Publishers список / элементы=словарь |
Список назначений портов. Возвращаемое значение: успех |
|
Протокол строка |
Протокол. Возвращаемое значение: успех Может возвращать только:
|
|
PublishedPort целое число |
Порт, который опубликован. Возвращаемое значение: успех |
|
TargetPort целое число |
Порт контейнера, к которому сопоставляется опубликованный порт. Возвращаемое значение: успех |
|
URL строка |
Интерфейс, к которому привязан порт. Возвращаемое значение: успех |
|
RunningFor строка |
Время работы контейнера. Возвращаемое значение: успех |
|
Сервис строка |
Имя сервиса. Возвращаемое значение: успех |
|
Размер строка |
Размер контейнера. Возвращаемое значение: успех Пример: |
|
Состояние строка |
Состояние контейнера. Возвращаемое значение: успех Пример: |
|
Статус строка |
Статус контейнера. Возвращаемое значение: успех Пример: |
изображения список / элементы=словарь | Список изображений, связанных со службой. Возвращаемое значение: успех |
|
Имя контейнера строка |
Имя контейнера, использующего это изображение. Возвращаемое значение: успех |
|
ИД строка |
ИД изображения. Возвращаемое значение: успех Пример: |
|
Репозиторий строка |
Репозиторий, к которому принадлежит это изображение. Возвращаемое значение: успех |
|
Размер целое число |
Размер изображения в байтах. Возвращаемое значение: успех |
|
Тег строка |
Тег изображения. Возвращаемое значение: успех |
Ссылки на коллекцию
© 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_module.html