Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация
На главную
25eb9e0a-a5a8-472a-ace7-940b8bd2adf0
Облачные сервисы

Деплой из Docker Compose

Сервис App Platform позволяет развернуть приложение с помощью Docker Compose, размещенного в репозитории. Это дает возможность запускать любые приложения, включая те, что работают на фронтенд- и бэкенд-фреймворках, не поддерживаемых сервисом напрямую.

Условия для корректного деплоя

  1. Dockerfile и файл docker-compose.yml должны находиться в корне подключенного репозитория. Пример можно найти в Гитхабе. Если Dockerfile размещен в другом месте, путь к нему необходимо указать явно в манифесте docker-compose.yml. Например:
    
services: app: build: context: ./app         # Путь к папке с исходным кодом       dockerfile: ./docker/Dockerfile.prod  # Явный путь к Dockerfile
  1. В манифесте нельзя использовать порты 80 и 443 в качестве хост-портов — они зарезервированы под веб-сервер. Вместо них используйте любые другие порты.
  2. Проксирование настраивается только для первого сервиса в docker-compose.yml. Остальные сервисы, если у них заданы хост-порты, будут доступны с их явным указанием. Например:
    
services: my-app: ports: - "9000:80" adminer: ports: - "8080:8080"

В этом случае my-app доступен по основному домену, а adminer — по http://домен:8080.

  1. В docker-compose.yml нельзя использовать директивы:
    • cap_add
    • cgroup
    • cgroup_parent
    • devices
    • privileged
    • device_cgroup_rules
    • volumes
    • ipc
    • pid
    • security_opt
    • userns_mode
    • sysctls

При попытке деплоя манифеста с этими директивами возникнет ошибка.

  1. При настройке сети запрещен режим host.

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

В пункте «Тип» перейдите на вкладку Docker и выберите Docker Compose.

Image5

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

Выберите репозиторий с приложением. В корне репозитория должен быть размещен docker-compose.yml

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

  • Из вашего аккаунта GitHub, GitLab или BitBucket. Кликните на название платформы, авторизуйтесь и выберите нужный репозиторий. Если вы уже авторизованы, панель сразу покажет доступные репозитории.

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

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

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

Image3

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

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

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

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

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

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

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

Be4444cf 7b4f 4ddf B9db A735db4d30ab

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

Image2

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

Шаг 6. Настройка приложения

Сервис автоматически прочитает инструкции из docker-compose.yml и соберет приложение в соответствии с ними. 

На этом этапе вы можете задать переменные, если это необходимо. Если они прописаны в docker-compose.yml или в Dockerfile, дублировать их не требуется.

Scr 20251107 Lyeg

Переменные можно использовать как на этапе сборки, так и во время выполнения приложения. Чтобы использовать переменные в качестве аргументов сборки, передайте их в docker-compose.yml следующим образом:

    
build: context: . args: - ARGUMENT_VAR=${example_var}

После этого вы сможете использовать переменную в Dockerfile:

    
ARG ARGUMENT_VAR=${example_var}

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

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

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

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

Scr 20251107 Lyhz

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

Шаг 8. Деплой

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

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

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

Image4

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

Image2

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

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