Установка при помощи Docker
Для работы с Docker-контейнерами необходимо установить Docker и Docker Compose.
Запуск платформы lsFusion с помощью Docker Compose
-
Скачайте файл
compose.yaml
с центрального сервера в выбранную папку (будем называть её$FUSION_DIR$
). Этот файл содержит настройки для запуска трёх контейнеров:- PostgreSQL
- Сервер приложений
- Веб-клиент
-
Настройка
compose.yaml
(опционально):- Если требуется изменить параметры запуска (например, использовать другую версию контейнера или настроить переменные окружения), отредактируйте файл
compose.yaml
в соответствии с документацией Docker. - Параметры запуска сервера приложений также можно задавать при помощи переменных среды контейнера - в атрибуте environment. К примеру, чтобы изменить локаль сервера на русскую, напишите:
При поиске параметров запуска в переменных среды Spring автоматически преобразует их к верхнему регистру и заменяет точки на символы подчёркивания. В примере выше значения переменных среды подставятся в соответствующие параметры:
environment:
- USER_SETLANGUAGE=ru
- USER_SETCOUNTRY=RUuser.setLanguage
иuser.setCountry
. - Доступные образы контейнеров lsFusion:
- Если требуется изменить параметры запуска (например, использовать другую версию контейнера или настроить переменные окружения), отредактируйте файл
-
Запуск контейнеров:
Перейдите в папку
$FUSION_DIR$
и выполните команду:docker-compose up
После завершения запуска веб-клиент будет доступен по адресу:
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
-
Автоматическая генерация:
- При сборке проекта одной из приведённых выше команд с профилем
docker
Maven автоматически создаёт файл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 по умолчанию равно значению тэга