Описание параметров файла 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 (например, |
Переменные для сервиса 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: |
монтирование каталога для хранения структур данных |
/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: |
монтирование каталога для хранения лог-файлов |
/etc/timezone:/etc/timezone:ro |
монтирование файла временной зоны в режиме только чтение для корректировки часового пояса |
|
/etc/localtime:/etc/localtime:ro |
монтирование файла локального времени в режиме только чтение для корректировки часового пояса |
|
ports |
9443:8443 |
маппинг порта хоста на порт NGINX внутри контейнера |
depends_on |
terra_spectacular_back |
список сервисов-зависимостей, которые должны успешно запуститься до старта текущего сервиса: terra_spectacular_back |