Перейти к содержанию

Создание и сборка приложений

Приложение не запускается! Что делать?

Проверьте каждый из пунктов ниже:

  • Убедитесь, что ваше приложение корректно запускается на вашем компьютере.
  • Убедитесь, что вы поместили в загружаемый архив код приложения, а не папку, содержащую его.
  • Убедитесь, что в названии ваших файлов и папок нет пробелов.
  • Проверьте, что вы четко следовали инструкции, указанной на первом шаге(загрузка архива).
  • Проверьте, что у вас есть средства на балансе в разделе Баланс.
  • Проверьте, что у вас нет ошибок на вкладке Логи на странице приложения.
  • Попробуйте перезапустить приложение, нажав на кнопку "Перезапустить" во вкладке "Основное" на странице приложения.

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

Как происходит загрузка приложений

Всего есть 3 этапа:

  1. Загрузка архива
  2. Анализ содержимого
  3. Сборка docker-контейнера

После загрузки архива с файлами приложения, наша система анализирует исходные файлы и определяет:

  • тип приложения(Python, JS, .NET)
  • исполняемый файл

Далее, пользователь может скорректировать результаты анализа и в зависимости от типа приложения поменять некоторые параметры: версия фреймворка, команда для запуска и т.д.

В конце происходит сборка докер-контейнера и переход на страницу приложения.

Кастомизация сборки

Если вам необходимо перед сборкой приложения:

  • установить пакеты/библиотеки
  • добавить файлы
  • произвести другие настройки

Вы можете это сделать, добавив в архив файл с названием deployf-install.sh. В файле должен содержаться Bash-скрипт с необходимыми командами. Он запустится только 1 раз перед сборкой приложения. Ниже пример скрипта, который обновляет версию pip-менеджера:

deployf-install.sh
#!/bin/bash
echo "Hello world!"
pip install --upgrade pip

Кастомизация уже созданного приложения

Если у вас уже собралось приложение и вам необходимо:

  • установить пакеты/библиотеки
  • выполнить свою команду на сервере

Для этих целей существует несколько вспомогательных файлов:

deployf-job.sh - запустится 1 раз и удалится
deployf-bootstrap.sh - запускается 1 раз при каждом старте приложения
deployf-run.sh - для указания собственной логики запуска приложения

Можно добавить один, два или все файлы сразу через вкладку Файловый менеджер на странице вашего приложения. Каждый файл должен строго соблюдать название и содержать в себе bash-скрипт. После добавления файла(-ов) необходимо перезапустить текущее приложение.

Внимание

Используйте deployf-job.sh только для незначительных действий. Не пытайтесь установить библиотеки с его помощью, так как они установятся за пределами корневой папки и, в случае будущего перезапуска приложения, не сохранятся.

Как получить выделенный адрес(URL)

Если ваше приложение умеет принимать http(s)-запросы и вам необходимо обращаться к нему "из вне", то понадобится выделенный адрес. Чтобы получить выделенный адрес, достаточно указать порт, который слушает ваше приложение, во вкладке "Порты" и перезапустить приложение - адрес появится под названием вашего приложения.

Внимание

Не указывайте https порт(443), нужен именно http. Система сама проксирует трафик к вашим приложениям по https через выделенный адрес.

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

Пример получения адреса в картинках:

1. Переходим на вкладку Порты и жмем на кнопку с плюсиком

app-ports-step-1
Вкладка "Порты"

2. Выбираем тип соединения, указываем нужный порт и жмем Добавить

app-ports-step-2
Добавление порта

3. Перезапускаем приложение по кнопке Перезапустить

app-ports-step-3
Перезапуск приложения

4. Адрес появляется под названием вашего приложения

app-ports-step-4
Выделенный адрес появился

5. Переходим по адресу и проверяем, что приложение работает

app-ports-step-5
Адрес работает

Почему во вкладке "Логи" пусто?

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

Не нашел ответа на вопрос

У вас остались вопросы по теме? Задайте их нам в чате поддержки в телеграм