Файл конфигурации docker-compose
Структура файла
Для понимания конфигурации системы Accelera Flow рекомендуется ознакомиться с обзором компонентов системы.
Файл конфигурации docker-compose.yaml представляет собой файл в формате YAML, где указываются настройки для системы Accelera Flow.
Пример файла docker-compose:
version: '3'
services:
flows_backoffice:
image: accelera/flows_backoffice:2.0.0
container_name: flows_backoffice
network_mode: "host"
restart: unless-stopped
environment:
- NODE_ENV=production
- CLICK_HOST=127.0.0.1
- CLICK_PORT=8123
- CLICK_DB=database
- CLICK_LOGIN=login
- CLICK_PASS=password
- BROKER_CONNECTION=amqp://user:password@127.0.0.1:5672
- REDIS_CONNECTION=redis://127.0.0.1:6379
- PORT=3002
flows_engine:
image: accelera/flows_engine:2.0.0
container_name: flows_engine
network_mode: "host"
restart: unless-stopped
environment:
- NODE_ENV=production
- CLICK_HOST=127.0.0.1
- CLICK_PORT=8123
- CLICK_DB=database
- CLICK_LOGIN=login
- CLICK_PASS=password
- ENABLE_GAME_API=true
- BROKER_CONNECTION=amqp://user:password@127.0.0.1:5672
- REDIS_CONNECTION=redis://127.0.0.1:6379
flows_actions:
image: accelera/flows_actions:2.0.0
container_name: flow_actions
network_mode: "host"
restart: unless-stopped
environment:
- NODE_ENV=production
- REDIS_CONNECTION=redis://127.0.0.1:6379
- MAILJET_API_KEY=98765z43y2x10w9vu98tsrq7p6on5m4l
- MAILJET_API_SECRET=98765z43y2x10w9vu98tsrq7p6on5m4l
- BROKER_CONNECTION=amqp://user:password@127.0.0.1:5672
- BLUEBIRD_WARNINGS=0
flows_frontend:
image: accelera/flows_frontend:2.0.0
container_name: flows_frontend
network_mode: "host"
environment:
- FLOW_ENGINE_URL=http://127.0.0.1:3002
- PORT=3005
flows_cache:
image: accelera/flows_cache:2.0.0
container_name: flows_cache
restart: unless-stopped
network_mode: "host"
environment:
- NODE_ENV=production
- CLICK_HOST=127.0.0.1
- CLICK_PORT=8123
- CLICK_DB=database
- CLICK_LOGIN=login
- CLICK_PASS=password
- REDIS_CONNECTION=redis://127.0.0.1:6379
flows_bulk:
image: accelera/flows_bulk:2.0.0
container_name: flows_bulk
restart: unless-stopped
network_mode: "host"
environment:
- NODE_ENV=production
- CLICK_HOST=127.0.0.1
- CLICK_PORT=8123
- CLICK_DB=database
- CLICK_LOGIN=login
- CLICK_PASS=password
- REDIS_CONNECTION=redis://127.0.0.1:6379
timers:
image: accelera/flows_timers:2.0.0
container_name: flows_timers
command: npm run start
restart: unless-stopped
network_mode: 'host'
environment:
- NODE_ENV=production
- LOGGER_LEVEL=info
- REDIS_CONNECTION=redis://127.0.0.1:6379
- BLUEBIRD_WARNINGS=0
- BROKER_CONNECTION=amqp://user:password@127.0.0.1:5672
depends_on:
- flow_actionsНастройки каждого сервиса производятся независимо друг от друга.
image
Укажите имя образа и его версию для запуска, имя образа каждого компонента можно узнать командой docker images, например:
docker images accelera/flows_engineВ результате получите найденный образ flows_engine, обратите внимание на колонку TAG, в ней указана версия образа. Впишите в поле image имя образа в формате REPOSITORY:TAG.
В предоставляемом дистрибутиве имена образов могут отличаться.
container_name
Задайте имя контейнера для docker-compose. Рекомендуется оставить без изменения.
network_mode
Настройка этого свойства зависит от расположения вашего Redis. Подробнее читайте здесь.
restart
Это свойство задает политику поведения контейнера при завершении. Возможные значения:
- no - не перезапускать контейнер при выходе.
- on-failure[:max-retries] - перезапускать, если контейнер завершился с ненулевым результатом. Можно задать количество попыток перезапуска.
- always - всегда перезапускать контейнер при завершении. Контейнер также запускается при запуске демона docker.
- unless-stopped - всегда перезапускать контейнер независимо от статуса выхода, в том числе при запуске демона, за исключением случаев, когда контейнер был зaвершен до остановки демона Docker.
Рекомендуется установка unless-stopped.
environment
В данном блоке перечисляются переменные среды для Accelera Flows. Можно использовать переменные среды для заполнения значений внутри файла docker-compose:
${YOUR_ENVIRONMENT_NAME:-default_value}PORT
Укажите порт для запуска REST-интерфейса.
FLOW_ENGINE_URL
Адрес для подключения к REST-интерфейсу Flow. Если используется network_mode: "host", укажите:
http://127.0.0.1:[ПОРТ_REST_ИНТЕРФЕЙСА].
Если используется network_mode: "bridge", укажите:
http://flows_engine:[ПОРТ_REST_ИНТЕРФЕЙСА]
Clickhouse connection
Необходимы для образа flows_bulk и flows_backoffice
CLICK_HOST - адрес БД Clickhouse.
CLICK_PORT - порт Clickhouse.
CLICK_LOGIN - логин доступа в Clickhouse.
CLICK_PASS - пароль доступа в Clickhouse.
PostgreSQL connection
Аналитическая БД
Начиная с версии 2.4.6 accelera поддерживает возможность подключения к Postgres как к аналитической БД. Для подключения настройте следующие переменные среды
Необходимы для образа flows_bulk и flows_backoffice
ANALYTICS_DB_DRIVER - используемый драйвер для подключения к аналитической БД. Возможные варианты - clickhouse или pg (для postgres).
ANALYTICS_DB_HOST - Хост аналитической БД.
ANALYTICS_DB_PORT - Порт
ANALYTICS_DB_USER - Имя пользователя
ANALYTICS_DB_PASSWORD - Пароль
ANALYTICS_DB_NAME - Имя БД
ANALYTICS_DB_SCHEMA - Используемая схема. По умолчанию public.
Для подключения через SSL укажите переменную среды ANALYTICS_DB_CERT_PATH со значением, например /usr/src/app/root.crt
Затем добавьте volume с сертификатом из вашего окружения внутрь контейнера по указанному пути.
Операционная БД
Начиная с версии 3.0.0 accelera необходим PostgreSQL в качестве операционной БД. Для подключения настройте следующие переменные среды
Необходимы для всех образов, кроме flows_bulk.
OPERATIONAL_DB_HOST - Хост аналитической БД.
OPERATIONAL_DB_PORT - Порт
OPERATIONAL_DB_USER - Имя пользователя
OPERATIONAL_DB_PASSWORD - Пароль
OPERATIONAL_DB_NAME - Имя БД
OPERATIONAL_DB_SCHEMA - Используемая схема. По умолчанию public.
Для подключения через SSL укажите переменную среды OPERATIONAL_DB_CERT_PATH со значением, например /usr/src/app/root.crt
Затем добавьте volume с сертификатом из вашего окружения внутрь контейнера по указанному пути.
Game API
ENABLE_GAME_API - активация Game API. true или false.
Redis connection
Переменная REDIS_CONNECTION - Соединение к Redis, необходимоe всем компонентам, в URL-нотации.
Также доступна переменная REDIS_KEY_PREFIX, которая добавляет префикс ко всем ключам в пространстве БД Redis.
ПримерREDIS_KEY_PREFIX=accelera-
Все ключи будут работать именно с префиксом accelera.
Если не указывать эту переменную, то все ключи будут без префикса. Используйте для управления пространством ключей в вашем Redis.
.env файл
Чтобы не указывать в каждом сервисе повторяющиеся переменные (например, REDIS_CONNECTIONS или параметры подключения к Clickhouse), создайте отдельный файл с расширением .env
Пример файла:
NODE_ENV=production
CLICK_HOST=localhost
CLICK_PORT=8123
CLICK_LOGIN=admin
CLICK_PASS=admin
...Затем укажите путь к вашему файлу с переменными для каждого сервиса в docker-compose.yaml, пример:
services:
flows_backoffice:
image: accelera/flows_backoffice:1.0.1
container_name: flows_backoffice
network_mode: "host"
restart: unless-stopped
env_file:
- [путь к вашему .env файлу]Автоматический бэкап настроек
Для запуска автоматического бэкапа всех настроек нужно:
1. Указать в сервисе flows_backoffice переменную среды SAVING_SETTINGS_PERIODICALLY=true
2. (Опционально) Указать переменную среды SAVING_SETTINGS_CRON со значением крона. По умолчанию параметр = 00:00 каждого без исключения дня.
3. Добавить volume из контейнера flows_backoffice на диск. Внутри контейнера файлы-бэкапы сохраняются в папку /usr/share/workspace.
Например, если хотите сохранять все workspace-файлы в /accel/workspace настройка volume должна выглядеть так:volumes:
- /accel/workspace:/usr/share/workspace