Загрузить образ серверного приложения в репозиторий докера

docker load -i /evergis/spcore.tar

Запустить контейнер из образа выполнив:

docker run переменные_окружения порты тома spcore:latest dotnet SPCore.App.Public.dll дополнительные_команды

порты, открываются командой –p внешний_порт:порт_контейнера :

  • 5051 – основной порт приложения
  • 5050 – указывается только, если система запускается в режиме кластера ( несколько инстансов серверного приложения)

переменные_окружения, указываются командой -e :

Основные:

  • SPCORE_SuEmail - емеил суперпользователя
  • SPCORE_SuPassword – пароль супер пользователя
  • SPCORE_dbConnectionString – строка подключения к БД Postgres
  • SPCORE_host – публичный URL приложения
  • SPCORE_zkConnectionAddress – адрес ZooKeeper для координации приложений
  • SPCORE_nodeAddress – адрес приложения – с портом указанным в SPCORE_cloudConnectorPort
  • SPCORE_cloudConnectorPort – порт для подключения других приложений в кластере

Дополнительные переменные окружения описаны в конфигурационном файле SPCore.json, при переводе параметров конфигурации в переменные окружения должен указываться префикс SPCORE_, вложенные переменные JSON указываются через знак двойного подчеркивания ( __ ), например: параметр emailConfiguration.server в SPCORE_emailConfiguration__server.

тома

Дополнительно можно указать пути к логам, статичным файлам, например:

-v  $HOME/app/logs:/app/logs
-v  $HOME/app/static:/app/static
-v  $HOME/app/static_doc:/app/static_doc
-v  $HOME/app/static_preview:/app/static_preview

(без указания все это будет писаться внутрь контейнера и при перезапуске будет удалено)

дополнительные_команды:

--updateDb=true

Указывается, если приложение запускается первый раз на чистой БД без необходимых таблиц и необходимо применить миграции, которые создадут таблицы.

--resetCluster=true

Сброс кластера ZooKeeper

--continue=true

Продолжить работу после выполнения команд

Пример первого запуска приложения на URL localhost:5051 с логином/паролем суперюзера admin@mail.ru/123123123, в кластерном режиме (zookeeper расположен по URL zk:2181), БД расположенной на том же сервере (вне докера), с применением миграций :

docker run  -e SPCORE_host='http://localhost:5051' -e SPCORE_SuEmail=admin@mail.ru -e SPCORE_SuPassword=123123123 -e SPCORE_dbConnectionString='Server=host.docker.internal;Port=5432;User Id=postgres;Password=123123123;Database=evergis;Maximum Pool Size=25;'  -e SPCORE_zkConnectionAddress='zk:2181'  -e SPCORE_nodeAddress='spcore:5050'  -p 5051:5051  -p 5050:5050 spcore:latest dotnet SPCore.App.Public.dll --updateDb=true --resetCluster=true --continue=true

Для теста работоспособности ввести в браузере http://localhost:5051/, система должно ответить служебным сообщением:

{"serverName":"Spatial Processing Core","application":"Public","version":"0.6.0","routingProviders":[],"startedAt":"2022-02-19T16:42:42.3787309+00:00"}

Для повторного запуска (когда БД и ZooKeeper подготовлены) можно использовать команду:

docker run  -e SPCORE_host='http://localhost:5051' -e SPCORE_dbConnectionString='Server=host.docker.internal;Port=5432;User Id=postgres;Password=123123123;Database=evergis;Maximum Pool Size=25;'  -e SPCORE_zkConnectionAddress='zk:2181'  -e SPCORE_nodeAddress='localhost:5050'  -p 5051:5051  -p 5050:5050 spcore:latest dotnet SPCore.App.Public.dll --restart on-failure