Бесплатная миграция IT-инфраструктуры в облако
На главную
25eb9e0a-a5a8-472a-ace7-940b8bd2adf0
Облачные сервисы

Деплой приложения Hapi

Пошаговая инструкция по деплою приложения Hapi в сервисе Apps и устранению возможных ошибок.

Пример Hapi-приложения для деплоя можно найти на Гитхабе.

Деплой проекта

Чтобы развернуть приложение, созданное на Hapi.js, перейдите в раздел Apps и кликните на кнопку «Создать».

Шаг 1. Выбор приложения

В пункте «Тип» перейдите на вкладку Backend, выберите Node.js Hapi и нужную версию Node.js.

7a34b03b Ab57 4637 A68f 5d961f113946

Шаг 2. Подключение репозитория

Вы можете подключить репозиторий:

  • Из своего аккаунта GitHub, GitLab или BitBucket. Кликните на название платформы, авторизуйтесь и выберите нужный репозиторий. Если вы уже авторизованы, панель сразу покажет доступные репозитории.
  • По URL, указав ссылку на репозиторий, созданный на любой платформе. Кликните «Подключите git-репозиторий по URL» (либо «Добавить аккаунт» → «Подключите git-репозиторий по URL») и укажите Git URL репозитория. Если репозиторий приватный, введите реквизиты доступа.

Подробнее о подключении репозиториев — здесь.

Шаг 3. Выбор ветки и коммита

517295ae 5c3b 46dd Bff5 48b5cde866a5

1. Выберите ветку для деплоя.

2. По умолчанию мы включаем опцию «Сборка по последнему выполненному коммиту». В этом случае сервис Apps выполнит деплой по самому актуальному коммиту, а в дальнейшем будет автоматически пересобирать приложение при добавлении новых коммитов в репозиторий. 

При необходимости вы сможете отключить автодеплой в дальнейшем.

Если вы хотите выбрать конкретный коммит вручную — отключите эту опцию.

7690c0ce 69f7 49cb 94b3 7afdb3d18245

Шаг 4. Регион и конфигурация сервера

Приложение Hapi должно быть развернуто на отдельном облачном сервере. Выберите регион размещения сервера и его конфигурацию. 

Af9f847d C518 4416 Bed7 1579e16d8b14

В дальнейшем, если потребуется, вы сможете перейти на более мощный тариф.

Шаг 5. Настройка параметров сборки

Cce06ab0 Cc9e 46fb B132 A56d003ab49c

Сервис предложит команду сборки и запуска для вашего проекта. Вы можете отредактировать их, если необходимо, однако в большинстве случаев эти параметры можно оставить без изменений.

Команда сборки приложения всегда запускается в корне репозитория, поэтому файл package.json также должен быть размещен в корне. Если package.json находится в другой директории, ее необходимо указать в команде сборки.

Например, если package.json расположен в каталоге landing, то команда сборки npm run build должна быть преобразована в:

 

npm run --prefix landing build

 Для сборки приложения Hapi по умолчанию мы выполним следующее:

apt-get install -y nodejs --fix-missing
npm install pm2@latest -g
npm install hapi @hapi/hapi
  • Если в проекте есть файл package.json и используется yarn:
apt-get remove -y cmdtest yarn
npm install --global yarn
  • В остальных случаях при наличии package.json:
"cd /%s && npm i" % (DIRECTORY)

Если вы понимаете, что вам нужно модифицировать процесс сборки, вы можете указать свою команду сборки или несколько, разделяя их с помощью &&. Например, если требуется установить определенные драйверы, добавьте в команду сборки:

apt install имя_пакета

На этом же этапе можно настроить переменные.

В качестве команды запуска по умолчанию будет использоваться:

pm2 start --no-daemon файл.js

Где файл.js — файл запуска приложения. Чтобы приложение корректно запустилось, он должен иметь имя app.js, server.js, main.js или index.js

У вас будет возможность внести изменения в любые из этих параметров в дальнейшем и перезапустить деплой с новыми настройками, если потребуется.

Шаг 6. Информация о приложении

Задайте свое имя приложения, если требуется, и комментарий к нему. Это данные, которые будут отображаться в панели управления.

Также выберите, в какой проект его нужно добавить.

5c5d10af 256b 431a 8264 02c3ec0927ac

Эти настройки также можно изменить в дальнейшем.

Шаг 7. Деплой

Нажмите «Запустить деплой». Как только процесс начнется, вы увидите лог деплоя на вкладке «Деплой».

Как правило, он содержит всю необходимую информацию для устранения возможных ошибок. Если что-то пойдет не так, например, из-за наличия ошибок в коде, в логе будут выведены уведомления о них с уточнением причины проблемы. 

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

Group 1321314123

Готово! Ваш проект развернут и готов к работе.

В дальнейшем Apps будет отслеживать обновления в репозитории и, если включен автодеплой, автоматически перезапускать проект с новыми изменениями.

IP-адрес приложения и бесплатный технический домен, привязанный к нему по умолчанию, можно найти на вкладе «Дашборд». Приложение будет доступно по 443 порту; порт 80 также открыт.

Привязать собственный домен можно по нашей инструкции.

Без Названия

Устранение неполадок

Не удается выполнить развертывание

Если с развертыванием возникают проблемы, в первую очередь проверьте лог деплоя. Вы сможете определить, в какой момент что-то пошло не так. 

Зачастую проблемы связаны с командой запуска. Проверьте, что всё в вашей среде разработки работает с pm2. Убедитесь, что все модули, необходимые для запуска приложения, присутствуют в файле package.json.

Please add build instruction to your script section in package.json

Проблема связана с тем, что команда сборки yarn build обращается к файлу package.json, и если значение директивы build не указано, возникает ошибка.

Чтобы ее устранить, нужно добавить необходимые директивы в секцию scripts файла package.json. Подробнее об использовании scriptsздесь.

Была ли статья полезна?
Ваша оценка очень важна
Пока нет комментариев