Установка Docker
Для работы с Docker-контейнерами необходимо установить Docker и Docker Compose.
Запуск Mycompany с помощью Docker Compose
-
Скачайте файл
compose.yamlс центрального сервера в выбранную папку (будем называть её$FUSION_DIR$). Этот файл содержит настройки для запуска четырёх контейнеров:- PostgreSQL
- Сервер приложений
- Mycompany
- Веб-клиент
-
Настройка
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.
Обновление версии PostgreSQL
В compose.yaml зафиксирована основная версия PostgreSQL. Основные версии PostgreSQL несовместимы между собой по формату данных на диске, поэтому после смены версии образа контейнер БД не запустится, пока база не будет мигрирована.
Начиная с версии 18 образ PostgreSQL хранит данные каждой версии в отдельной подпапке (например, 18/docker) и монтирует папку данных по пути /var/lib/postgresql (подробнее). В версиях до 18 данные лежали в корне папки docker-db, которая монтировалась по пути /var/lib/postgresql/data. Поэтому при переходе с версии 17 и ниже в compose.yaml, помимо версии образа, меняется и путь монтирования:
db:
image: postgres:18
volumes:
- ./docker-db:/var/lib/postgresql
При последующих переходах между версиями 18 и выше путь монтирования не меняется — только версия образа.
Перед миграцией любым из способов убедитесь, что у вас есть свежая резервная копия базы (например, копия папки docker-db, снятая при остановленных контейнерах).
Мигрировать базу можно одним из следующих способов:
-
Дамп и восстановление — рекомендуемый способ для большинства установок: новый кластер инициализируется образом штатно, а данные загружаются в него стандартным pg_dumpall:
docker compose exec db pg_dumpall -U postgres > backup.sql # при работающей старой версии;
# файл создаётся рядом с compose.yaml
docker compose down
# переименуйте папку docker-db (например, в docker-db-old) - старые данные останутся
# резервной копией, а новый контейнер создаст чистый кластер; обновите compose.yaml
docker compose up -d db
docker compose exec -T db psql -U postgres < backup.sql
docker compose up -d -
Скрипт миграции — для больших баз, когда дамп и восстановление занимают слишком много времени. Скрипт предназначен для стандартной установки, описанной на этой странице. Скачайте с центрального сервера скрипт
pg-migrate.bat(Windows) илиpg-migrate.sh(Linux) вместе сpg-migrate-container.shв папку$FUSION_DIR$. Пропишите вcompose.yamlновую версию образа (и, при переходе с 17 и ниже, новый путь монтирования), после чего запустите скрипт. Скрипт автоматизирует шаги, специфичные для Docker-образа: останавливает контейнеры, делает резервную копию папкиdocker-db(вdocker-db-backup), определяет исходную версию и раскладку данных и после миграции снова запускает контейнеры. Саму миграцию выполняет штатный pg_upgrade. Пользовательские настройкиpostgresql.confскрипт не переносит. Старый кластер останется в подпапкеdocker-dbсо старой версией — удалите его вместе с резервной копией после проверки работоспособности.
Для нестандартных конфигураций (репликация, изменённые образы или раскладка данных) используйте штатную процедуру обновления PostgreSQL.