Сервис App Platform позволяет развернуть приложение с помощью Docker Compose, размещенного в репозитории. Это дает возможность запускать любые приложения, включая те, что работают на фронтенд- и бэкенд-фреймворках, не поддерживаемых сервисом напрямую.
Условия для корректного деплоя
Dockerfileи файлdocker-compose.ymlдолжны находиться в корне подключенного репозитория. Пример можно найти в Гитхабе. ЕслиDockerfileразмещен в другом месте, путь к нему необходимо указать явно в манифестеdocker-compose.yml. Например:
services:
app:
build:
context: ./app # Путь к папке с исходным кодом
dockerfile: ./docker/Dockerfile.prod # Явный путь к Dockerfile
- В манифесте нельзя использовать порты
80и443в качестве хост-портов — они зарезервированы под веб-сервер. Вместо них используйте любые другие порты. - Проксирование настраивается только для первого сервиса в
docker-compose.yml. Остальные сервисы, если у них заданы хост-порты, будут доступны с их явным указанием. Например:
services:
my-app:
ports:
- "9000:80"
adminer:
ports:
- "8080:8080"
В этом случае my-app доступен по основному домену, а adminer — по http://домен:8080.
-
В
docker-compose.ymlнельзя использовать следующие директивы:-
cap_add -
cgroup -
cgroup_parent -
devices -
privileged -
device_cgroup_rules -
volumes -
ipc -
pid -
security_opt -
userns_mode -
sysctls -
volumes_from -
uts -
extra_hosts -
use_api_socket -
network_mode: container:... -
include -
extends
Также запрещены параметры:
-
externalв секцияхvolumes,networks,configsиsecrets; -
name; -
driver_opts;
И выход за пределы разрешенной директории (
path traversal) в значенииfileдляconfigsиsecrets.При попытке задеплоить манифест с любой из этих директив или параметров возникнет ошибка.
-
- При настройке сети запрещен режим
host.
Шаг 1. Подключение репозитория
Вы можете подключить репозиторий одним из следующих способов:
- Из аккаунта GitHub, GitLab или Bitbucket
- По ссылке
- Перейдите в раздел «App Platform» и нажмите кнопку «Создать» или «Добавить».
- Если вы уже залогинены в Git-аккаунт, панель отобразит все доступные репозитории. Выберите нужный.
- Если нужно авторизоваться в другой Git-аккаунт, раскройте список репозиториев и кликните «Добавить аккаунт».
- Кликните на иконку нужной платформы.
- Авторизуйтесь в своем Git-аккаунте и разрешите Timeweb Cloud доступ ко всем или отдельным репозиториям.
- Выберите нужный репозиторий в панели Timeweb Cloud.
- Выберите ветку для деплоя. Панель отобразит 200 последних веток, а также ветку по умолчанию (
master,mainилиdefault). -
Оставьте опцию «Сборка по последнему выполненному коммиту» включенной, чтобы автоматически перезапускать деплой приложения при появлении новых коммитов в репозитории.
Если хотите выбирать коммит для деплоя вручную, отключите эту опцию.
Автодеплой можно отключить и позже, в любой момент.
После подключения репозитория App Platform автоматически определит язык, фреймворк и версию окружения вашего приложения, но вы также можете скорректировать их вручную.
Убедитесь, что в поле «Фреймворк» выбрана опция «Docker Compose».
Шаг 2. Регион и конфигурация сервера
Приложения разворачиваются на отдельных облачных серверах. Выберите регион размещения и подходящую конфигурацию сервера. Вы можете выбрать один из готовых тарифов или настроить конфигурацию вручную на вкладке «Произвольная».
В дальнейшем, если потребуется, вы сможете перейти на более мощный тариф.
Шаг 3. Дополнительные настройки
App Platform автоматически прочитает инструкции из docker-compose.yml и соберет приложение в соответствии с ними.
Кликните «Показать расширенные настройки», чтобы просмотреть и задать дополнительные параметры.
Приватная сеть
Выберите приватную сеть, в которую будет добавлено приложение, и укажите IP-адрес, который оно будет использовать. Если приватная сеть не нужна — выберите «Без приватной сети».
Изменить приватную сеть после деплоя нельзя.
Если для приложения настроен приватный IP-адрес, во время повторного деплоя возможна кратковременная недоступность приложения.
Переменные
На этом этапе вы можете задать переменные, если это необходимо. Если они прописаны в docker-compose.yml или в Dockerfile, дублировать их не требуется.
Переменные можно использовать как на этапе сборки, так и во время выполнения приложения. Чтобы использовать переменные в качестве аргументов сборки, передайте их в docker-compose.yml следующим образом:
build:
context: .
args:
- ARGUMENT_VAR=${example_var}
После этого вы сможете использовать переменную в Dockerfile:
ARG ARGUMENT_VAR=${example_var}
Сертификаты Минцифры / Сертификаты ТЦИ
Могут потребоваться для работы с API российских банков и государственных организаций. Для установки сертификатов нужна дополнительная настройка.
Шаг 4. Информация о приложении
Задайте свое имя приложения, если требуется, и комментарий к нему. Это данные, которые будут отображаться в панели управления.
Также выберите, в какой проект его нужно добавить.
Эти настройки также можно изменить в дальнейшем.
Шаг 5. Деплой
Нажмите Запустить деплой. Как только процесс начнется, вы увидите лог деплоя во вкладке «Деплой».
Как правило, он содержит всю необходимую информацию для устранения возможных ошибок. Если что-то пойдет не так, например, из-за наличия ошибок в коде, в логе будут выведены уведомления о них с уточнением причины проблемы.
При первом развертывании проекта установка сервера может занять некоторое время. Как только процесс завершится, статус приложения обновится, а также вы увидите сообщение об этом в логе.

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

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