Описание параметров файла docker-compose

Начиная с версии 2.0 настройки модулей IVA Terra хранятся в файлах JSON-формата, соответствующих каждому сервису / контейнеру, в каталоге ./TERRA_DATA/settings/.

Управление настройками рекомендуется выполнять в разделе Настройки web-панели администрирования IVA Terra (подробнее — см. Руководство администратора IVA Terra).

Для ручного редактирования JSON-файлов (в случае сложностей с доступом к web-панели) необходимо использовать текстовый редактор, соблюдая формат JSON.

Нарушение формата JSON-файлов приведет к недоступности файла для сервиса, и будут использованы настройки по умолчанию.

Конфигурационный файл docker-compose.yml используется для определения и управления контейнерами приложения IVA Terra с помощью утилиты Docker Compose. Файл содержит инструкции для запуска и настройки сервисов, сетей, томов и других компонентов приложения.

Файл docker-compose.yml для приложения IVA Terra описывает конфигурацию и взаимодействие нескольких сервисов, включая RabbitMQ, PostgreSQL, API-сервисы для обработки аудиофрагментов, онлайн-транскрибацию и перевод. Данные сервисы работают в единой сети и используют Docker-контейнеры для обеспечения масштабируемости и гибкости.

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

Многие сервисы настроены на автоматический перезапуск (restart: always), чтобы обеспечить их работу даже после аварийного завершения. Для всех сервисов используется временная зона Europe / Moscow, которая устанавливается через маппинг файлов /etc/timezone и /etc/localtime.

Общие настройки и переменные

Общие настройки, которые используются в файле docker-compose.yml для различных сервисов:

Настройка Значение по умолчанию Описание

MODULE_VERSION

v2_0

актуальная версия системы IVA Terra (используется в именах docker-образов и конфигурационных файлах)

restart

always

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

environment

 — 

список переменных окружения для контейнера

volumes

 — 

монтирование каталогов для лог-файлов и данных в контейнер

networks

terra_network

наименование используемой подсети, созданной в Docker, к которой подключается контейнер

depends_on

 — 

определяет зависимости между контейнерами, указывая, что один контейнер должен запускаться после другого

CONFIG_NAME

 — 

путь и имя конфигурационного файла в формате [путь]/[имя_файла].json (например, TERRA_DATA/settings/offline_worker.json). Изменение JSON‑файла требует перезапуска контейнера

Переменные для сервиса rabbitmq

Параметр Значение по умолчанию Описание

image

rabbitmq:3.13.0-management

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

hostname

rabbitmq

принудительное назначение доменного имени для брокера сообщений

RABBITMQ_DEFAULT_USER

guest

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

RABBITMQ_DEFAULT_PASS

guest

пароль пользователя для подключения к брокеру сообщений

RABBITMQ_NODE_PORT

5672

номер TCP-порта для подключения к брокеру сообщений

volumes

./RABBIT_DATA:/var/lib/rabbitmq/

монтирование каталога для хранения очередей и сообщений

/etc/timezone:/etc/timezone:ro

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

/etc/localtime:/etc/localtime:ro

монтирование файла локального времени в режиме только чтение для корректировки часового пояса

Переменные для сервиса database

Параметр Значение по умолчанию Описание

image

postgres:16.3-alpine

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

POSTGRES_USER

terra_control

имя пользователя для подключения клиентов к СУБД

POSTGRES_PASSWORD

terra_control

пароль пользователя для подключения клиентов к СУБД

POSTGRES_DB

terra_control

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

TZ

Europe/Moscow

часовой пояс СУБД для корректного хранения и отображения данных полей datetime

PGTZ

Europe/Moscow

часовой пояс СУБД для корректного хранения и отображения данных полей datetime

volumes

./POSTGRES_TERRA_CONTROL:
/var/lib/postgresql/data

монтирование каталога для хранения структур данных

/etc/timezone:/etc/timezone:ro

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

/etc/localtime:/etc/localtime:ro

монтирование файла локального времени в режиме только чтение для корректировки часового пояса

command

-c "max_connections=1000" -p 5432

увеличение максимального количества одновременных клиентских соединений до 1000

Переменные для сервиса terra_spectacular_front

Параметр Значение по умолчанию Описание

image

terra_spectacular_front:v2_0

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

volumes

./SPECTACULAR_LOGS:
/var/log/spectacular

монтирование каталога для хранения лог-файлов

/etc/timezone:/etc/timezone:ro

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

/etc/localtime:/etc/localtime:ro

монтирование файла локального времени в режиме только чтение для корректировки часового пояса

ports

9443:8443

маппинг порта хоста на порт NGINX внутри контейнера

depends_on

terra_spectacular_back

список сервисов-зависимостей, которые должны успешно запуститься до старта текущего сервиса: terra_spectacular_back