В этой статье:
Для разворачивания платформы будет использоваться инструмент Docker Compose. Предварительно потребуются:
дистрибутивы платформы для Astra Linux 1.8 (biserver и webserver, bud - при необходимости работы с продуктом «Форсайт. Бюджетирование и консолидация»);
машина для запуска Docker и работы с платформой. Docker может быть запущен на любой операционной системе, которую он поддерживает, но контейнеры должны собираться по дистрибутивам платформы для Astra Linux 1.8;
данные для подключения к репозиторию, с которым будет работать пользователь;
логин и пароль служебного пользователя, зарегистрированного в репозитории;
актуальный файл product.dat (только при необходимости работы с продуктом «Форсайт. Бюджетирование и консолидация», может быть получен при обращении в техническую поддержку по адресу support@fsight.ru или через сервисы технической поддержки, которые доступны после регистрации на сайте);
данные для подключения к сервису лицензий licman.
Все дальнейшие команды выполняются в оболочке PowerShell при работе в ОС Windows и в терминале при работе в ОС Linux.
Готовые файлы конфигурации, необходимые для создания Docker-контейнеров с помощью Docker Compose, можно получить при обращении в техническую поддержку по адресу support@fsight.ru или через сервисы технической поддержки, которые доступны после регистрации на сайте.
В полученную папку build скопируйте дистрибутивы BI-сервера, серверной части веб-приложения и/или программного продукта «Форсайт. Бюджетирование и консолидация».
В папке compose переименуйте файл .env.example в .env, заполните значения переменных следующим образом:
LICMAN_PORT=8510
LICMAN_HOST=<licman server>
AUDIT_USER=<audit user>
AUDIT_PASS=<audit user password>
Примечание. В различных репозиториях могут использоваться разные служебные пользователи. Укажите учётные данные служебного пользователя зарегистрированного в том репозитории, в котором предполагается работа.
Если предполагается работа с программным продуктом «Форсайт. Бюджетирование и консолидация», то в переменной PRODUCT_DAT необходимо указать содержимое файла лицензии product.dat. Значение указывается в кавычках со всеми переводами строк.
Также в папке compose будет содержаться файл compose.yml, который описывает структуру собираемых Docker-контейнеров.
В папке compose/conf во всех дочерних подкаталогах переименуйте все файлы, убрав из имени «.example».
Для разворачивания Docker-контейнеров с платформой на рабочей машине понадобится доступ в интернет для взаимодействия с репозиториями Docker и Astra Linux. Установите Docker в соответствии с официальными инструкциями в соответствии с используемой ОС: Linux/Windows.
При работе в ОС Linux, помимо ядра Docker, также нужно будет установить плагин docker-compose. Это можно сделать по инструкции https://docs.docker.com/compose/install/linux/#install-using-the-repository. Также можно воспользоваться официальной документацией того дистрибутива Linux, который используется. Например, документацией Astra Linux для установки Docker и docker-compose https://docs.astralinux.ru/latest/guide/virtual/docker/.
С учётом запуска в рабочей сети компании нужно удостовериться, что Docker имеет доступ в интернет и может работать с прокси-сервером сети компании. Недостаточно оставить настройки прокси по умолчанию, нужно прописать настройки прокси рабочей машины повторно в Docker. Например, перед запуском Docker-образов в ОС Windows выполните команды:
$env:HTTP_PROXY="http://123.45.67.89:1234"
$env:HTTPS_PROXY="http://123.45.67.89:1234"
На рабочей машине с ОС Linux выполните команды:
export HTTP_PROXY="http://123.45.67.89:1234"
export HTTPS_PROXY="http://123.45.67.89:1234"
Это нужно для того, чтобы при первом запуске Docker мог обратиться к репозиторию Astra Linux и взять оттуда образ Astra Linux 1.8 для монтирования системы. Можно самостоятельно осуществить и проверить доступ Docker в интернет следующей командой:
docker pull registry.astralinux.ru/library/astra/ubi18:1.8.4
В Linux дистрибутивах для получения прав на изменение списка репозиториев Metabases.xml во время работы с платформой нужно, чтобы запустивший Docker пользователь имел права на запись в Metabases.xml. Для этого измените владение и права на файл Metabases.xml командами:
chown <название пользователя>:<группа пользователя> <путь до Metabases.xml включая сам файл>
chmod 777 <путь до Metabases.xml включая сам файл>
В папке compose/conf в дочерних подкаталогах располагаются различные конфигурационные файлы, в которых задан ряд настроек. При необходимости настройки могут быть изменены в соответствии с допустимой структурой файлов:
Настройки BI-сервера в подкаталоге biserver: registry.reg и Metabases.xml;
Настройки серверной части веб-приложения в подкаталоге webserver: config.json и PP.xml.
Настройки серверной части продукта «Форсайт. Бюджетирование и консолидация» в подкаталоге bud: структура файла config.json совпадает со структурой файла серверной части веб-приложения.
Для запуска всех трёх контейнеров выполните из папки compose команду:
docker-compose up -d
При внесении изменений в папке build или при первом запуске контейнера команда будет выполняться дольше, чем при обычной работе. Также при первом запуске будут зарегистрированы сервисы используемых контейнеров.
Стоит обратить внимание, что если на используемой машине уже зарегистрированы сервисы платформы, то может произойти перезапись настроек сервисов или какие-либо иные конфликты.
Для остановки всех запущенных контейнеров выполните из папки compose команду:
docker-compose down
Сохранённые настройки сервисов останутся.
Docker также поддерживает возможность запуска контейнеров не в полном комплекте, а по отдельности. Для этого укажите конкретные контейнеры для запуска, например:
docker-compose up -d biserver webserver
При этом будут запущены только контейнеры с BI-сервером и серверной частью веб-приложения. Остановка конкретных контейнеров производится по той же логике:
docker-compose down biserver
Эта команда остановит только BI-сервер.
После успешного запуска контейнеров платформа будет доступна на компьютере пользователя по следующим адресам:
http://localhost:8110/fp10.x/r/# - веб-приложение «Форсайт. Аналитическая платформа»;
http://localhost:8310/bud/# - продукт «Форсайт. Бюджетирование и консолидация»;
http://localhost:8810/FPBI_App_v10.x/axis2/services/PP.SOM.Som - адрес, по которому веб-приложение обращается к BI-серверу. Ссылка не предназначена для открытия в браузере, может использоваться для отправки прямых запросов к BI-серверу.
После первого запуска список репозиториев будет пуст, для его наполнения и начала работы в платформе обратитесь к подразделу «Настройка подключения к репозиторию». При добавлении репозиториев на СУБД, отличных от Postgres, стоит учитывать требования, описанные в подразделе «Поддерживаемые СУБД». Добавленный репозиторий сохранится в файле Metabases.xml и будет доступен даже после перезапуска контейнера. Для продукта «Форсайт. Бюджетирование и консолидация» необходимо добавить настройки того репозитория, который прописан в файле config.json в папке compose\conf\bud\.
Обратите внимание, что платформа работает в режиме GetStatusMode=1 - это означает, что при отсутствии запросов от пользователя сессия будет прекращена в течение 30 минут.
Для проверки статуса работы контейнеров введите команду docker ps:

Будут отображены текущие состояния всех активных контейнеров.
При наличии специфических ошибок, связанных с настройкой работы платформы, в логах могут отображаться следующие ошибки:
"Укажите имя и пароль сервисного пользователя в файле .env"
"Укажите адрес сервиса лицензирования в файле .env"
Эти ошибки связаны с настройкой файлов конфигурации, проверьте настройки в файле .env.
В настройках платформы по умолчанию включено логирование BI-сервера на уровне Debug. Поменять уровень логирования можно в файле по адресу compose\conf\biserver\registry.reg, изменив значение параметра SeverityLevel.
Логирование в Docker немного отличается от логирования в платформе, развернутой обычными методами. Чтобы получить доступ к логам выполните следующую команду:
docker logs -f <название_контейнера>
или
docker-compose logs -f <название_контейнера>
где название контейнера - это контейнер, логи которого необходимо получить: biserver, webserver или bud. Также логи доступны в Docker Desktop при щелчке по контейнеру на вкладке Containers:

Будет открыт набор вкладок, первая из которых Logs:

Более подробно о работе с логами можно ознакомиться в официальной документации Docker. После остановки контейнера логи будут удалены.
Для разбора лога обратитесь к разделу «Работа с отладочной информацией».
Особенностью работы Docker и его контейнеров является то, что по умолчанию не установлено сколько мощностей и памяти компьютера будет потреблять приложение. В отдельных случаях это может привести к перегрузке машины и остановке работы. Для борьбы с этим в конфигурационном файле .env были добавлены параметры ограничения используемых ресурсов по мощности процессора и по объему оперативной памяти:
WEBSERVER_CPUS
WEBSERVER_MEMORY
BISERVER_CPUS
BISERVER_MEMORY
BUD_CPUS
BUD_MEMORY
Параметры _CPUS отвечают за то, какой процент мощности ядер процессора максимум может использовать тот или иной контейнер. Указывается значение в диапазоне [0, 1]. Параметры _MEMORY отвечают за то, какое количество оперативной памяти максимум может занимать контейнер (в байтах). Также для параметров типа _MEMORY предусмотрены сокращения для удобства отображения мегабайтов и гигабайтов. Пример заполнения параметров:
WEBSERVER_CPUS=0.5
WEBSERVER_MEMORY=200m
На данный момент нет точных данных об оптимальных значениях для подобных параметров. Проконсультируйтесь с администраторами вашей сети, чтобы определить допустимые ограничения для Docker'а на рабочей машине.
Также можно изменить директорию или диск, где Docker будет хранить образы. Для машин на ОС Windows это можно сделать в настройках Docker Desktop в группе VM resources. Измените значение поля «Disk image location» с помощью кнопки «Browse» и нажмите кнопку «Apply & Restart Engine» для переноса образов:

Для машин на ОС Linux директорией по умолчанию будет /var/lib/docker. Директорию можно поменять, указав в файле daemon.json (по умолчанию находится в /etc/docker) параметр data-root с желаемым адресом директории, например:
{
"data-root": "/mnt/docker-data"
}
Изменения применятся после перезагрузки Docker, для этого выполните следующие команды:
sudo systemctl daemon-reload
sudo systemctl start docker
Подробнее про работу data-root читайте в официальной документации Docker по адресу https://docs.docker.com/engine/daemon/.
См. также:
Установка и настройка продукта «Форсайт. Аналитическая платформа»