Документация Accelera

Файл конфигурации 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

На этой странице