Установщик для Linux

Вы также можете использовать установщик приложений IONDV. Framework для Linux, требующий установленных node, mongodb и git. В ходе установки будет проверены и установлены все остальные зависимости, а также собрано и запущено само приложение.

Установка в одну строку:

bash <(curl -sL https://raw.githubusercontent.com/iondv/iondv-app/master/iondv-app) -t git -q -i -m localhost:27017 app

Где параметры для iondv-app localhost:27017 адрес MongoDB, а app название приложения. После запуска открыть ссылку http://localhost:8888, учетная запись бек офиса demo, пароль ion-demo.

Также другой способ заключается в клонировании - git clone https://github.com/iondv/iondv-app.git и установите приложение с помощью команды bash iondv-app -m localhost:27017 app, где app - название приложения.

Можно также собрать приложение в докер конейтнерах, тогда из окружения нужен только docker и СУБД mongodb в докер контейнере.

Требования к окружению

Для работы системы должна быть запущена СУБД Монго ДБ. В docker-контейнере её можно запустить командой:

docker run --name mongodb -v mongodb_data:/data/db -p 27017:27017 -d mongo

Описание подготовки системы приведено ниже.

Установка, сборка и запуск приложения одной командой в докер-контейнере

Примеры сборок ниже, подразумевают что СУБД запущена в контейнере с именем mongodb.

На примере простейшего приложения Nutrition-Tickets, команда скачивает установщик с репозитория github, который собирает и запускает приложение в docker-контейнере в текущей директории.

  • из репозтория git

    bash <(curl -sL https://raw.githubusercontent.com/iondv/iondv-app/master/iondv-app) \   -t docker -q -i -l mongodb nutrition-tickets
    
  • из архива zip, например полученного с гитхаб curl -L https://github.com/iondv/nutrition-tickets/archive/master.zip > ./nutrition-tickets.zip или созданного в IONDV. Studio. Обратите внимание, что в package.json созданного приложения в атрибуте "ionModulesDependencies" нужно указать модуль для отображения данным - обычно это "registry".

    bash <(curl -sL https://raw.githubusercontent.com/iondv/iondv-app/master/iondv-app) \   -t docker -q -i -l mongodb ./nutrition-tickets.zip
    
  • из папки, при этом оригинальная папка приложения не модифицируется. Обратите внимание, что название папки должно соответствовать неймспейсу приложения (если папка распакована с архива github - то в названии обычно добавляется код ветки - нужно переименовать)

    bash <(curl -sL https://raw.githubusercontent.com/iondv/iondv-app/master/iondv-app) \   -t docker -q -i -l mongodb ./nutrition-tickets
    

Адрес собранного приложения по умолчанию http://localhost:8888, пользователь demo, пароль ion-demo.

Установка, сборка и запуск приложения в локальной файловой системе

Примеры сборок ниже, подразумевают что СУБД запущена локально и доступна по адресу localhost:27017.

Установка в локальной файловой системе позволяет получить приложение готовое к модификации и доработкам средствами разработчика, например в IDE - достаточно открыть папку приложения. Папка приложения создается в папке запуска, либо в папке заданной параметром -p

  • из репозитория git в папке /workspace

    bash <(curl -sL https://raw.githubusercontent.com/iondv/iondv-app/master/iondv-app)  -t git -p /workspace -m localhost:27017 https://github.com/iondv/nutrition-tickets.git
    
  • из архива zip в текущей папке, например полученного с гитхаб curl -L https://github.com/iondv/nutrition-tickets/archive/master.zip > ./nutrition-tickets.zip или созданного в IONDV. Studio. Обратите внимание, что в package.json созданного приложения в атрибуте "ionModulesDependencies" нужно указать модуль для отображения данным - обычно это "registry"

    bash <(curl -sL https://raw.githubusercontent.com/iondv/iondv-app/master/iondv-app) \ -t git -p /workspace -m localhost:27017 ./nutrition-tickets.zip
    
  • из папки, при этом оригинальная папка приложения не модифицируется. Обратите внимание, что название папки должно соответствовать неймспейсу приложения (если папка распакована с архива github - то в названии обычно добавляется код ветки - нужно переименовать)

    bash <(curl -sL https://raw.githubusercontent.com/iondv/iondv-app/master/iondv-app)    -t git -q -i -m localhost:27017 ./nutrition-tickets
    

Параметры запуска

iondv-app [OPTION]... IONDV_APP_NAME|IONDV_APP_NAME@VERSION|GIT_URL|IONDV_APP_ZIP|IONDV_APP_PATH

Параметры Тип сборки приложения
-t [value] git: клонирование репозиториев в файловую систему (требуется установленный git) docker: сборка в докер-контейнерах, не требует установки окружения на хост-машину
-c [value] запуск приложения как кластера с кол-вом инсталляций [value]
-m [value] uri для монгодб, примеры: mongodb:27017. localhost:27017 - по умолчанию (при сборке в докере выдаст ошибку подключения к БД(!). Для докера используйте параметр -l, либо укажите внешний адрес СУБД
-r проверка и удаление папки с именем приложения в директории сборки
-i импорт  данных при инициализации приложения
-a импорт ролей и учетных записей пользователей при инициализации приложения
-y применение всех значений по умолчанию (yes to all)
-q тихий режим. Показывается только основная информация, предупреждения и ошибки
-l [value] имя контейнера MongoDB для линковки к собранному контейнеру (тип сборки docker или параметр -d при типе сборки git), также формирует конфигурацию с указанием значения mongo uri как [value]:27017
-p [value] путь к директории в которой будет создавать папка с именем приложения и осуществляться сборка
-s [value] полный путь к скрипту, запускаемому в папке приложения после сборки, но до деплоя приложения. Может использоваться для дополнительной обработки файлов приложения
-n [value] параметр определяющий запуск изменение неймспейса приложения на новое, до деплоя
-h пропуск переключения на версии зависимостей приложения, установка последних версий
-x выход без запуска приложения
Параметры для метода git:  
-d на основе собранной версии подготовить также docker-контейнер. Также остановить и удалить контейнер, образ с таким именем
-k пропустить проверку окружения
Параметры для метода сборки docker: сохранять временные версии контейнеров - позволяет ускорить последующие сборки. Но кэширование пропускается, если установлен флаг игнорировать версии зависимостей
-v на основе собранной версии подготовить также docker-контейнер. Также остановить и удалить контейнер, образ с таким именем
Переменные окружения:  
IONDVUrlGitFramework URL репозитория фреймворка, по умолчанию https://github.com/iondv/framework.git Вы можете задать логин и пароль к своей версии в приватном репозитории. Например: https://login:password@git.company-name.com/iondv/framework.git
IONDVUrlGitModules URL к модулям, по умолчанию by default https://github.com/iondv
IONDVUrlGitApp URL к приложениям - используется если для сборки указано только имя приложения, по умолчанию https://github.com/iondv
IONDVUrlGitExtApp URL к приложениям-расширениям, по умолчанию https://github.com/iondv

Подготовка окружения

Установка docker

Рекомендуется делать не под root

  • Установка последней версии docker для CentOS:

1. Обновляем систему sudo yum update

2. Устанавливаем необходимые библиотеки yum install -y yum-utils device-mapper-persistent-data lvm2

3. Регистрируем репозиторий yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

4. Установка последней версии yum -y install docker-ce docker-ce-cli containerd.io

5. Запускаем докер systemctl start docker

6. Для автоматического запуска докера systemctl enable docker

  • Установка последней версии docker для Ubuntu:
  1. Добавляем ключ GDP curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

  2. Проверяем ключ apt-key fingerprint 0EBFCD88

  3. Добавляем репозиторий

    sudo add-apt-repository \   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) \
    stable"
    
  4. Обновляем репозитории sudo apt-get update

  5. Ставим последнюю версию sudo apt-get install docker-ce docker-ce-cli containerd.io

Добавляем текущего пользователя в группу docker:

sudo groupadd docker   sudo usermod -aG docker $USER

Проверить можно docker run hello-world

Запуск Mongo в докере

Запускаем с маппингом на локальный порт:

docker run --name mongodb -v mongodb_data:/data/db -p 27017:27017 -d mongo

Установка node

Для ускорения сборки, рекомендуется предварительно скачать локально docker-образ node:10, т.к. он занимает 900Мб.

docker pull node:10

Проверить можно командой docker images | grep node - будет отображён спискок локальных образов node.