Установка ЛЭРС УЧЁТ в Docker
ЛЭРС УЧЁТ может быть установлен из образов Docker. Образы основаны на операционной системе Linux и публикуются на dockerhub ЛЭРС УЧЁТ.
Важно
ЛЭРС УЧЁТ в docker-контейнере требует наличие интернет-подключения для проверки лицензии. Подробнее смотрите в статье Лицензирование Docker-контейнера
Репозитории
ЛЭРС УЧЁТ распространяется в двух репозиториях:
- полный образ, включающий сервер и службу опроса
lersamr/full
; - образ только со службой опроса
lersamr/pollservice
.
Если вы впервые устанавливаете ЛЭРС УЧЁТ, используйте полный образ lersamr/full
.
Теги
Образы в репозитории маркируются следующими тегами:
Тег | Описание |
---|---|
latest | Самая новая общедоступная версия системы |
beta | Самая новая бета-версия системы |
next | Ночные сборки готовящейся версии. Ни в коем случае не используйте сборки next для работы! Метки next предназначены только для тестирования специалистами ЛЭРС УЧЁТ! |
Подготовка к установке
Перед запуском сервера определите в какую папку сервер сохранит свою конфигурацию и временные файлы. Если вы не укажете папки, после обновления контейнера нужно будет заново настраивать подключение к БД. Папки не обязательно создавать заранее. Это сделает docker при запуске контейнера.
В примерах рассматривается запуск контейнера на хост-компьютере под управлением Linux. Мы будем использовать папку /var/LERS
для хранения временных данных и etc/LERS
для хранения настроек. Вы можете использовать вместо них любые другие папки на вашем компьютере. Например, если хост-компьютер работает под управлением Windows, это могут быть папки /c/lers/data
и /c/lers/config
.
В этом случае во всех файлах docker-compose.yml
в секции volumes
нужно будет заменить путь на хост-компьютере (он указывается первым до двоеточия). Например, строку
- /var/LERS:/var/LERS
нужно будет заменить на
- /c/lers/data:/var/LERS
Установка ЛЭРС УЧЁТ
Примечание
Описанные команды могут выполняться в любой командной среде — Powershell или Bash.
На Linux все команды должны запускаться с правами суперпользователя. Для этого в командной среде введите sudo su
.
Мы рекомендуем создать приложение с помощью Docker Compose. Это упростит дальнейшее администрирование и обновление системы.
Эта инструкция предполагает, что сервер баз данных уже установлен и у вас есть реквизиты для подключения к нему. Чтобы создать docker приложение, которое включает сервер БД, воспользуйтесь инструкциями ниже.
Создайте на диске папку lers
, а в ней файл docker-compose.yml
:
version: "3.9"
services:
lers:
image: lersamr/full:latest
ports:
- "10000:10000"
volumes:
- /var/LERS:/var/LERS
- /etc/LERS:/etc/LERS
Запустите приложение командой
docker compose up -d
После первого запуска, контейнер войдёт в режим ожидания настройки. Нужно подключиться к созданному контейнеру и настроить подключение к серверу баз данных с помощью встроенного в него установщика. Для этого введите команду
docker compose exec -it lers /install.sh
Программа установки запросит у вас реквизиты для подключения к серверу БД. После окончания процесса установки вы можете ввести в браузере адрес http://localhost:10000
, войти в систему. и выполнить активацию.
Установка ЛЭРС УЧЁТ и сервера баз данных
Сервер баз данных можно установить самостоятельно. Однако, с помощью Docker Compose можно создать приложение, которое будет включать в себя и сервер ЛЭРС УЧЁТ и сервер баз данных. Это сильно упрощает установку, так как достаточно создать один файл docker-compose.yml
, и все дальнейшие шаги по настройке будут выполнены автоматически.
Чтобы создать приложение, создайте папку lers
и в ней файл docker-compose.yml
. Содержимое файла зависит от того, какой сервер баз данных вы собираетесь использовать.
SQL Server
Внимание
В поле MSSQL_SA_PASSWORD
указывается пароль суперпользователя для доступа к серверу баз данных SQL Server. В этом примере он устанавливается в My_strong_Password123
. Рекомендуется использовать сложный пароль, чтобы обеспечить безопасность системы.
Очень важно ввести такой же пароль в параметре LERS_SERVER_DATABASE__ConnectionString
, чтобы сервер ЛЭРС УЧЁТ смог подключиться к БД.
version: "3.9"
services:
lers:
image: lersamr/full:latest
depends_on:
- "db"
ports:
- "10000:10000"
volumes:
- /var/LERS:/var/LERS
environment:
LERS_SERVER_DATABASE__ConnectionString: "Data Source=db; Initial Catalog=LERS; User ID=sa; Password=My_StrongPassword_123; Integrated Security=false"
db:
image: "mcr.microsoft.com/mssql/server"
environment:
MSSQL_SA_PASSWORD: My_StrongPassword_123
ACCEPT_EULA: "y"
volumes:
- /var/LERS/sqldata:/var/opt/mssql/data
Резервные копии БД будут сохраняться в папку /var/LERS/sqldata
. Начиная с SQL Server 2019, у пользователя, под которым запущен сервер в контейнере, нет прав администратора. Поэтому, перед запуском сервера, нужно создать папку /var/LERS/sqldata
и предоставить к ней доступ группе root
. Для этого введите команды:
mkdir -p /var/LERS/sqldata
chgrp -R 0 /var/LERS/sqldata
chmod -R g=u /var/LERS/sqldata
Postgres
Внимание
В поле POSTGRES_PASSWORD
указывается пароль суперпользователя для доступа к серверу баз данных Postgres. В этом примере он устанавливается в my_postgres_password
. Рекомендуется использовать сложный пароль, чтобы обеспечить безопасность системы.
Очень важно ввести такой же пароль в параметре LERS_SERVER_DATABASE__ConnectionString
, чтобы сервер ЛЭРС УЧЁТ смог подключиться к БД.
version: "3.9"
services:
lers:
image: lersamr/full:latest
depends_on:
- "db"
ports:
- "10000:10000"
volumes:
- /var/LERS:/var/LERS
environment:
LERS_SERVER_DATABASE__ConnectionString: "Host=db;Database=LERS;Username=postgres;Password=my_postgres_password"
LERS_SERVER_DATABASE__Provider: "Postgres"
db:
image: postgres
environment:
POSTGRES_PASSWORD: my_postgres_password
volumes:
- /var/LERS/postgresdata:/var/lib/postgresql/data
Запустите систему:
docker compose up -d
Теперь вы можете ввести в браузере адрес http://localhost:10000
, войти в систему и выполнить активацию.
Порты для входящих подключений GPRS-модемов
Описанных шагов достаточно в случае если ЛЭРС УЧЁТ будет опрашивать устройства через канал связи Интернет. Для опроса модемов через GPRS потребуется открыть входящие порты. Для этого в docker-compose.yml
в описании сервиса lers
в разделе ports:
добавьте другие порты, на которые будут подключаться модемы. Например, чтобы разрешить использовать для входящих подключений модемов порт 2060, отредактируйте файл docker-compose.yml
следующим образом:
version: "3.9"
services:
lers:
image: lersamr/full:latest
volumes:
- /var/LERS:/var/LERS
- /etc/LERS:/etc/LERS
ports:
- "10000:10000" # Порт для подключения к серверу ЛЭРС УЧЁТ
- "2060:2060" # Порт для приёма входящих подключений от GPRS модемов.
После этого создайте GPRS порт опроса, привязанный к порту 2060. Docker будет перенаправлять входящие подключения службе опроса, и GPRS модемы смогут подключиться к системе.
Порты для опроса через CSD (только Linux)
Следующие шаги нужно выполнить если нужно опрашивать приборы через канал связи CSD с помощью диспетчерских модемов.
Система ЛЭРС в контейнере docker может опрашивать приборы через диспетчерские модемы только если хост-компьютер работает под управлением Linux. В Windows использовать COM-порт хост-компьютера не получится.
Сначала нужно найти имя устройства, которое используется для COM-портов на вашем компьютере. Для аппаратных COM-портов в Linux используются имена ttyS0
, ttyS1
, и так далее. Преобразователи USB-COM могут создавать другие порты. Например, ttySUSB0
, или serial0
.
Чтобы вывести список аппаратных COM-портов, воспользуйтесь командой dmesg
$ dmesg | grep tty
[ 0.190905] printk: console [tty0] enabled
[ 0.987599] 00:03: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[ 1.009557] 00:04: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 115200) is a 16550A
Видно, что на компьютере присутствует два последовательных порта с именами ttyS0
и ttyS1
. Мы будем рассматривать аппаратный COM-порт с наименованием ttyS0
.
Теперь нужно предоставить docker-контейнеру доступ к этому устройству. Для этого в docker-compose.yml
в описании сервиса lers
добавьте секцию devices
, в которой укажите к каким COM-портам будет предоставлен доступ:
version: "3.9"
services:
lers:
image: lersamr/full:latest
volumes:
- /var/LERS:/var/LERS
- /etc/LERS:/etc/LERS
devices:
- "/dev/ttyS0:/dev/ttyS0" # COM-порт, к которому подключен модем.
Сохраните файл и выполните команду
docker compose up -d
Теперь вы можете использовать порт ttyS0 для создания порта опроса. В поле COM-порт
введите ttyS0
, чтобы создать порт опроса, использующий подключенный к COM-порту компьютера модем.
Обратите внимание, что в выпадающем списке может не быть имени вашего устройства. В этом случае, его нужно будет ввести вручную с клавиатуры.
Обновление
После выпуска новой версии, потребуется вручную обновить образ и приложение. Для этого перейдите в папку lers
и введите команду, которая загрузит из репозитория новый образ системы:
docker compose pull
Обновите запущенное приложение:
docker compose up -d
Установка бета-версии
Если вы хотите попробовать установить бета-версию системы, отредактируйте файл docker-compose.yml
. В параметре image: lersamr/full:latest
замените latest
на beta
. У вас должно получиться image: lersamr/full:beta
. После этого пересоздайте приложение командой
docker compose up -d
Что дальше
После того как вы установили систему, стоит зарегистрировать домен, чтобы вы могли получить доступ к своему серверу не по IP-адресу, а по доменному имени.
Кроме того, рекомендуется установить обратный прокси-сервер и настроить для него SSL сертификат, чтобы работа с сервером выполнялась по защищённому протоколу HTTPS.