Несколько серверов ЛЭРС на одном ПК под Linux

Продолжая обсуждение из темы Установка ЛЭРС УЧЁТ в Docker:

Подскажите пожалуйста: каким образом лучше всего разместить два сервера ЛЭРС УЧЕТ на одном ПК с Linux ?
Насколько я понимаю правильным будет установить СУБД непосредственно на саму ОС сервера, и развернуть два Docker контейнера, указав подключение к серверу БД.
Наверное нужно задать разное имя для баз данных, чтобы они могли совместно работать, я прав?
Думаю было бы неплохо разместить подобную инструкцию в руководстве пользователя потому что такая задача не только у нас возникнет.

Это не типичная конфигурация, поэтому, в документации не описана.

В общем, всё так. Разные контейнеры могут работать параллельно с одним сервером БД, но:

  1. Имена баз данных должны отличаться.
  2. Если заданы локальные пути для томов, они так же должны отличаться. Иначе серверы и службы опроса будут записывать журналы в один и тот же файл.

Можно использовать, например, такие файл docker-comose.yml. Только заменить SERVER_NAME на какое-то наименование. Например, server1, server2, или ещё что-то.

Их можно поместить в папки SERVER_NAME и запустить как обычно.

version: "3.9"
services:
  lers:
    image: lersamr/full:latest
    ports:
      - "10000:10000"
    volumes:
      - /var/lers/SERVER_NAME:/var/LERS
    environment:
      LERS_SERVER_DATABASE__ConnectionString: "Host=db;Database=SERVER_NAME;Username=postgres;Password=my_postgres_password"
      LERS_SERVER_DATABASE__Provider: "Postgres"
1 лайк

С другой стороны ничего не мешает запустить два контейнера, каждый из которых содержит в себе и Сервер ЛЭРС и сервер БД, верно? Вопрос только в производительности?
В какой то степени изоляция баз данных разных серверов наверное даже лучше в плане отказоустойчивости?

Ну да, можно и два сервера БД. Отказоустойчивость тут не повышается, так как сбой одного компьютера гарантировано свалит все сервисы. Производительность будет ниже и ресурсов будет тратиться больше,

повысится независимость систем. При обновлении одной, не будет валиться вторая.

Если мы запускаем сервер ЛЭРС в docker, предлагается запустить install.sh для настройки подключения к БД.
При этом если выбрать MSSQL сервер, и указать Логин,Пароль,Имя БД - то насколько я понимаю в процессе работы скрипта создается пользователь lers с правами на указанную БД, и данные этого пользователя прописываются в Lers.Server.xml
Если мы хотим запустить еще один экземпляр сервера ЛЭРС в контейнере - то в процессе работы скрипта пользователь БД будет пересоздан?
Как лучше поступить в случае, если есть SQL Server под Windows, и хочется к нему подключить несколько docker контейнеров?

Попрошу всё-таки создавать новые темы для вопросов, а не поднимать уже решённые старые.

Ещё раз по поводу нескольких серверов. Это нетипичная конфигурация, install.sh нужен для типичного развёртывания.

В любых других случаях вы можете указать строку подключения к серверу БД напрямую в переменной среды LERS_SERVER_DATABASE__ConnectionString. Её можно задать в compose.yml, или в команде docker run.

Тип базы данных выбирается переменной LERS_SERVER_DATABASE__Provider, она может принимать значения Postgres или SqlServer.

Создайте пользователя, пустую БД, настройте для него разрешения, подготовьте строку подключения и передайте её в контейнер. После этого всё будет работать.