Установка Pilot-Server в docker-контейнере

Для запуска docker-контейнеров необходим Docker Engine. Установите продукт согласно рекомендациям для вашей операционной системы.

Для установки Docker Engine на компьютер без доступа к сети интернет следуйте инструкции по установке из исполняемых файлов.

В консоли введите команду загрузки образа контейнера pilot-server:

# docker pull registry.ascon.ru/project/pilotdev/pilot/pilot-server:latest

Тэг latest соответствует последней бета-версии. Также можно использовать тэг release или указывать необходимую версию. Например registry.ascon.ru/project/pilotdev/pilot/pilot-server:25.10.0

После выполнения команды запустите контейнер pilot-server, добавьте учётную запись администратора сервера и перезапустите контейнер:

# docker run -d -p port:5545 --name pilot-server -v bd_path:/usr/share/ascon/databases -v aspnet_path:/root/.aspnet -v lic_path:/usr/share/ASCON -v path:/usr/share/ascon/pilot-server/settings -v logs_path:/App/logs registry.ascon.ru/project/pilotdev/pilot/pilot-server:latest

# docker exec -ti pilot-server ./Ascon.Pilot.Daemon --admin /usr/share/ascon/pilot-server/settings/settings.xml имя_администратора_сервера пароль_администратора_сервера

# docker restart pilot-server

Где:

port — порт, на котором будет работать контейнер с Pilot-Server. Например, 5546:5545 означает, что порт 5545, на котором Pilot-Server работает внутри контейнера будет направлен на 5546. Для работы с сервером клиенты будут подключаться к порту 5546;

bd_path — путь к папке на хосте, которая будет смонтирована в контейнер как том. Используйте том для хранения серверных баз данных и журнала действий в серверной базе данных. Загрузите базу данных в bd_path на хосте, при подключении с помощью Pilot-myAdmin её можно будет найти в /usr/share/ascon/databases.

aspnet_path — путь к папке на хосте, где хранятся компоненты aspnet. Необходимо её смонтировать для возможности сохранения настроек при переустановке контейнера.

lic_path — путь к папке на хосте, которая будет смонтирована в контейнер в /usr/share/ASCON. При добавлении лицензии в ней появится папка 'Pilot Server'/license и в ней будет размещён файл лицензии.

path — путь к папке на хосте, которая будет смонтирована в контейнер в /usr/share/ascon/pilot-server/settings. Используйте эту папку для хранения журнала действий на сервере и файла настроек.

log_path — путь к папке на хосте, которая будет смонтирована в контейнер в /App/logs. Используется для хранения логов.

имя_администратора_сервера, пароль_администратора_сервера — придумайте имя и пароль для администратора сервера.

На Linux удобно использовать одинаковые пути для хоста и контейнера.

Автоматический запуск контейнеров после перезагрузки компьютера или падения можно включить параметром --restart unless-stopped, добавленным в строку с командой docker run. Например: docker run --restart unless-stopped -d -p...

Пример установки Pilot-Server в docker-контейнере

  1. Убедитесь, что на вашей операционной системе установлен Docker Engine.
  2. Определите сетевой адрес компьютера, на котором будет запущен Pilot-Server, с помощью консольной команды ifconfig на Linux или ipconfig на Windows.
  3. Из вывода нужно взять IPv4-адрес:

    Адаптер Ethernet Ethernet 2:
    DNS-суффикс подключения . . . . . :
    Локальный IPv6-адрес канала . . . : fe80::2c6d:d271:5bed:2649%5
    IPv4-адрес. . . . . . . . . . . . : 192.168.56.1
  4. Загрузите контейнер с Pilot-Server:
  5. # docker pull registry.ascon.ru/project/pilotdev/pilot/pilot-server:latest

  6. Запустите контейнер:
  7. На Linux:

    # docker run -d -p 5546:5545 --name pilot-server -v /usr/share/ascon/databases:/usr/share/ascon/databases -v /usr/share/ascon/.aspnet/pilot-server:/root/.aspnet -v /usr/share/ASCON:/usr/share/ASCON -v /usr/share/ascon/pilot-server/settings:/usr/share/ascon/pilot-server/settings -v /App/logs:/App/logs registry.ascon.ru/project/pilotdev/pilot/pilot-server:latest

    На Windows:

    # docker run -d -p 5546:5545 --name pilot-server -v C:/Ascon-Docker/databases:/usr/share/ascon/databases -v C:/Ascon-Docker/aspnet/pilot-server:/root/.aspnet -v C:/Ascon-Docker/license:/usr/share/ASCON -v C:/Ascon-Docker/pilot-server/settings:/usr/share/ascon/pilot-server/settings -v C:/Ascon-Docker/logs:/App/logs registry.ascon.ru/project/pilotdev/pilot/pilot-server:latest

  8. Добавьте администратора сервера и перезапустите контейнер:
  9. # docker exec -ti pilot-server ./Ascon.Pilot.Daemon --admin /usr/share/ascon/pilot-server/settings/settings.xml admin admin_password

    # docker restart pilot-server

  10. Проверьте, что сервер работает:
  11. $ curl http://192.168.56.1:5546

    Выводом команды будет версия Pilot-Server.

  12. Скачайте демонстрационные базы.
  13. На Linux:

    $ cd /usr/share/ascon/databases

    # wget https://pilot.ascon.ru/release/Databases.zip

    # unzip Databases.zip

    На Windows скачайте и распакуйте демонстрационные базы в C:/Ascon-Docker/databases.

  14. Подключите демонстрационную базу. База будет расположена в /usr/share/ascon/databases/Databases.
  15. Убедитесь, что клиентское приложение или Web-редакция подключается и работает с этой базой.

Особенности установки контейнера с Pilot-Server на компьютер без доступа к сети интернет

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

Это делается командой:

# docker pull registry.ascon.ru/project/pilotdev/pilot/pilot-server:latest

Тэг latest соответствует последней бета-версии. Также можно использовать тэг release или указывать необходимую версию. Например registry.ascon.ru/project/pilotdev/pilot/pilot-server:25.10.0

После этого сохраните полученный образ в архив с помощью команды:

# docker save registry.ascon.ru/project/pilotdev/pilot/pilot-server:latest -o archive-name.tar

Где archive-name — имя архива, которое вы задаёте.

Удалить ненужный образ можно командой:

# docker image rm registry.ascon.ru/project/pilotdev/pilot/pilot-server:latest

Созданный архив необходимо записать на любой удобный носитель, например, флеш-накопитель и перенести на компьютер, где требуется установка. Для загрузки образа из архива воспользуйтесь командой:

# docker load -i archive-name.tar

После этого установите контейнер согласно инструкции выше.

Настройка Pilot-Server

Дальнейшая настройка системы Pilot включает в себя установку лицензии и подключение базы данных и доступна в следующих вариантах:

  • С помощью Pilot-myAdmin выполняется и установка лицензии, и подключение базы данных.
  • С помощью команд, описанных ниже:

Установка лицензии

Создайте папку на хосте /usr/share/ASCON/"Pilot Server"/License. Разместите в неё файл лицензий.

# mkdir -p /usr/share/ASCON/"Pilot Server"/License/

# cp ./license.pilotlic /usr/share/ASCON/"Pilot Server"/License/license.pilotlic

Где:

license — имя файла лицензий;

Перезапустите контейнер с Pilot-Server.

Присоединение базы данных

База данных присоединяется и запускается командой --attach или -at с записью параметров подключения в файл settings.xml:

# docker exec -ti [PILOT_SERVER_CONTAINER_NAME] ./Ascon.Pilot.Daemon --attach [DATABASE_NAME] [PATH_TO_DATABASE_FILE] [PATH_TO_FILE_ARCHIVE]

Пример для подключения демонстрационной базы данных pilot-bim_ru:

# docker exec -ti pilot-server ./Ascon.Pilot.Daemon --attach pilot-bim_ru /usr/share/ascon/databases/Databases/pilot-bim_ru/base.dbp /usr/share/ascon/databases/Databases/pilot-bim_ru/FileArchive/44191f9c-c8a4-4689-b38b-474f2aba4465.pilotfa

Отсоединение базы данных

Для отсоединения базы данных воспользуйтесь командой --detach или -de:

# docker exec -ti [PILOT_SERVER_CONTAINER_NAME] ./Ascon.Pilot.Daemon --detach [DATABASE_NAME]

Пример отсоединения базы данных pilot-bim_ru:

# docker exec -ti pilot-server ./Ascon.Pilot.Daemon --detach pilot-bim_ru