Установка при помощи Docker
Для работы с Docker-контейнерами необходимо установить Docker и Docker Compose.
Запуск платформы lsFusion с помощью Docker Compose
-
Скачайте файл
compose.yamlс центрального сервера в выбранную папку (будем называть её$FUSION_DIR$). Этот файл содержит настройки для запуска трёх контейнеров:- PostgreSQL
- Сервер приложений
- Веб-клиент
-
Настройка
compose.yaml(опционально):- Если требуется изменить параметры запуска (например, использовать другую версию контейнера или настроить переменные окружения), отредактируйте файл
compose.yamlв соответствии с документацией Docker. - Параметры запуска сервера приложений также можно задавать при помощи переменных среды контейнера - в атрибуте environment. К примеру, чтобы изменить локаль сервера на русскую, а также задать своё значение Xmx, напишите:
При поиске параметров запуска в переменных среды Spring автоматически преобразует их к верхнему регистру и заменяет точки на символы подчёркивания. В примере выше значения переменных среды подставятся в соответствующие параметры:
environment:
- USER_SETLANGUAGE=ru
- USER_SETCOUNTRY=RU
- JAVA_OPTS=-Xmx10guser.setLanguageиuser.setCountry. - Доступные образы контейнеров lsFusion:
- Если требуется изменить параметры запуска (например, использовать другую версию контейнера или настроить переменные окружения), отредактируйте файл
-
Запуск контейнеров:
Перейдите в папку
$FUSION_DIR$и выполните команду:docker-compose up -dПосле завершения запуска веб-клиент будет доступен по адресу:
http://localhost:8080/. -
Работа с файлами проекта:
- После первого запуска в папке
$FUSION_DIR$будут созданы подпапки:docker-client-conf— конфигурация клиента.docker-db— данные базы данных.docker-server— файлы сервера.
- В папку
docker-serverпоместите модули на языке lsFusion (файлы.lsfили папки с ними), а также дополнительные ресурсы (отчёты, Java-файлы, изображения, CSS, JS и т.д.). В этой же папке находятся серверные логи и файлsettings.properties.
- После первого запуска в папке
Создание и запуск Docker-образа вашего проекта
Если ваш проект наследует Maven-модуль платформы lsFusion logics, вы можете использовать встроенные инструменты для создания Docker-образа и генерации файла compose.yaml.
Создание Docker-образа
-
Сборка образа:
Сборка Docker-образа привязана к фазам Maven и активируется профилем
docker.- На фазе
installобраз собирается и загружается в локальный реестр. - На фазе
deployобраз загружается в публичный реестр (например, Docker Hub).
Для сборки образа выполните в папке проекта команду:
mvn install -P assemble,dockerЕсли вы хотите собрать образ на основе uber-jar с включенным в него сервером lsFusion, добавьте профиль
embed-server:mvn install -P assemble,embed-server,docker - На фазе
-
Загрузка образа в публичный реестр:
Чтобы собрать образ и загрузить его в Docker Hub, выполните:
mvn deploy -P assemble,dockerили (для uber-jar с сервером):
mvn deploy -P assemble,embed-server,docker -
Настройка имени образа:
По умолчанию имя образа имеет вид:
local/<artifactId>:<version>(artifactId, version - значения соответствующих тэгов в файле pom.xml модуля проекта). Вы можете переопределить часть имени или имя целиком через свойства Maven вpom.xml:<properties>
<docker.image.namespace>foo</docker.image.namespace>
<docker.image.repository>bar</docker.image.repository>
<docker.image.tag>1.0</docker.image.tag>
<!-- или -->
<docker.image.fullName>foo/bar:1.0</docker.image.fullName>
</properties>
Генерация и использование compose.yaml
-
Автоматическая генерация:
- При сборке проекта одной из приведённых выше команд с профилем
dockerMaven автоматически создаёт файлcompose.yaml. - Файл генерируется с подставленными версией платформы lsFusion и именем Docker-образа вашего проекта.
- Файл сохраняется в папке
targetили по пути, указанному в свойстве Mavendocker.compose.outputDirectory. Также содержимое файла выводится в консоль после сборки.
- При сборке проекта одной из приведённых выше команд с профилем
-
Запуск сгенерированного
compose.yaml:Запуск и настройка аналогичны шагам, описанным в разделе Запуск платформы lsFusion с некоторыми особенностями:
- Имя проекта Docker Compose по умолчанию равно значению тэга
artifactId. Чтобы генерировалось другое имя проекта, переопределите свойство Mavendocker.compose.projectName. - Если вы не используете профиль
embed-server, папкаdocker-serverпри запуске контейнера сервера приложений не создаётся. Данные будут храниться в Docker volume, управляемом Docker Engine.
- Имя проекта Docker Compose по умолчанию равно значению тэга