Сервис App Platform позволяет развернуть приложение с помощью Dockerfile, размещенного в репозитории. Благодаря этому вы можете деплоить любые приложения, в том числе созданные на фронтенд- и бэкенд-фреймворках, которые сервис не поддерживает напрямую.
У нас есть туториал с примером развертывания приложения через Dockerfile.
Требования для запуска
- Для корректного деплоя Dockerfile должен быть размещен в корне репозитория и содержать необходимые инструкции для сборки и запуска и приложения. Пример докерфайла и приложения можно найти на Гитхабе.
- В Dockerfile должен быть прописан параметр
EXPOSE, чтобы сервис мог определить, какой порт должен слушать веб-сервер. ЕслиEXPOSEне задан, веб-сервер по умолчанию будет слушать порт контейнера8080.
Пример:
- Необходимые переменные окружения могут быть заданы как в самом докерфайле, так в процессе запуска приложения в панели управления.
Шаг 1. Выбор приложения
В пункте «Тип» перейдите на вкладку Dockerfile.

Шаг 2. Подключение репозитория
Выберите репозиторий с приложением. В корне репозитория должен быть размещен Dockerfile.
Репозиторий можно подключить:
- Из вашего аккаунта GitHub, GitLab или BitBucket. Кликните на название платформы, авторизуйтесь и выберите нужный репозиторий. Если вы уже авторизованы, панель сразу покажет доступные репозитории.
- По URL, указав ссылку на репозиторий, созданный на любой платформе. Кликните «Подключите git-репозиторий по URL» (либо «Добавить аккаунт» → «Подключите git-репозиторий по URL») и укажите Git URL репозитория. Если репозиторий приватный, введите реквизиты доступа.
Подробнее о подключении репозиториев — здесь.
Шаг 3. Выбор ветки и коммита
1. Выберите ветку для деплоя.
2. По умолчанию мы включаем опцию «Сборка по последнему выполненному коммиту». В этом случае App Platform выполнит деплой по самому актуальному коммиту, а в дальнейшем будет автоматически пересобирать приложение при добавлении новых коммитов в репозиторий.
При необходимости вы сможете отключить автодеплой в дальнейшем.
Если вы хотите выбрать конкретный коммит вручную — отключите эту опцию.
Шаг 4. Регион и конфигурация сервера
Приложения разворачиваются на отдельных облачных серверах. Выберите регион размещения и подходящую конфигурацию сервера. Вы можете выбрать один из готовых тарифов или настроить конфигурацию вручную на вкладке «Произвольная».
В дальнейшем, если потребуется, вы сможете перейти на более мощный тариф.

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

На этом этапе вы можете выбрать приватную сеть, в которую будет добавлено приложение, и указать IP-адрес, который оно будет использовать. Обратите внимание, что изменить приватную сеть после деплоя нельзя.
Шаг 6. Настройка приложения

Сервис автоматически прочитает инструкции из докерфайла и соберет приложение в соответствии с ними.
На этом этапе вы можете задать путь проверки состояния и переменные (ENV), если это необходимо. Если они прописаны в докерфайле, дублировать их не требуется.
В дальнейшем у вас будет возможность внести изменения в параметры приложения, а также выбрать другую ветку и коммит, и перезапустить деплой с новыми настройками, если потребуется.
Шаг 7. Информация о приложении
Задайте свое имя приложения, если требуется, и комментарий к нему. Это данные, которые будут отображаться в панели управления.
Также выберите, в какой проект его нужно добавить.
Эти настройки также можно изменить в дальнейшем.
Шаг 8. Деплой
Нажмите Запустить деплой. Как только процесс начнется, вы увидите лог деплоя на вкладке «Деплой».
Как правило, он содержит всю необходимую информацию для устранения возможных ошибок. Если что-то пойдет не так, например, из-за наличия ошибок в коде, в логе будут выведены уведомления о них с уточнением причины проблемы.
При первом развертывании проекта установка сервера может занять некоторое время. Как только процесс завершится, статус приложения обновится, а также вы увидите сообщение об этом в логе.
Готово!
IP-адрес приложения и бесплатный технический домен, привязанный к нему по умолчанию, можно найти на вкладе «Дашборд». Привязать собственный домен можно по нашей инструкции.
Приложение будет доступно по 443 порту; порт 80 также открыт.
В дальнейшем App Platform будет отслеживать обновления в репозитории и, если включен автодеплой, автоматически перезапускать проект с новыми изменениями.