На главную
- Облачные базы данных
- Хранилище S3
- Kubernetes
- Apps
- Обзор
- Принципы работы
- Подключение репозиториев
- Деплой frontend-приложений
- Деплой backend-приложений
- Деплой из Dockerfile
- Управление Apps в панели
- Частые вопросы об Apps
Деплой из Dockerfile
Сервис Apps позволяет развернуть приложение с помощью Dockerfile, размещенного в репозитории. Благодаря этому вы можете деплоить любые приложения, в том числе созданные на фронтенд- и бэкенд-фреймворках, которые сервис не поддерживает напрямую.
Требования для запуска
- Для корректного деплоя Dockerfile должен быть размещен в корне репозитория и содержать необходимые инструкции для сборки и запуска и приложения. Пример докерфайла и приложения Docker можно найти на Гитхабе.
- В Dockerfile должен быть прописан параметр
EXPOSE
, чтобы сервис мог определить, какой порт должен слушать Nginx. ЕслиEXPOSE
не задан, Nginx по умолчанию будет слушать порт контейнера8080
.
Пример:
FROM python:3.6
MAINTAINER Name Name "mail@mail.com"
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
ENTRYPOINT ["python"]
CMD ["app.py"]
EXPOSE 3478
- Сервис не поддерживает
docker-compose
. - Необходимые переменные окружения могут быть заданы как в самом докерфайле, так в процессе запуска приложения в панели Timeweb Cloud.
Шаг 1. Выбор приложения
В пункте «Тип» перейдите на вкладку Dockerfile.
Шаг 2. Подключение репозитория
Выберите репозиторий с приложением. В корне репозитория должен быть размещен Dockerfile.
Репозиторий можно подключить:
- Из вашего аккаунта GitHub, GitLab или BitBucket. Кликните на название платформы, авторизуйтесь и выберите нужный репозиторий. Если вы уже авторизованы, панель сразу покажет доступные репозитории.
- По URL, указав ссылку на репозиторий, созданный на любой платформе. Кликните «Подключите git-репозиторий по URL» (либо «Добавить аккаунт» → «Подключите git-репозиторий по URL») и укажите Git URL репозитория. Если репозиторий приватный, введите реквизиты доступа.
Подробнее о подключении репозиториев — здесь.
Шаг 3. Выбор ветки и коммита
1. Выберите ветку для деплоя.
2. По умолчанию мы включаем опцию «Сборка по последнему выполненному коммиту». В этом случае сервис Apps выполнит деплой по самому актуальному коммиту, а в дальнейшем будет автоматически пересобирать приложение при добавлении новых коммитов в репозиторий.
При необходимости вы сможете отключить автодеплой в дальнейшем.
Если вы хотите выбрать конкретный коммит вручную — отключите эту опцию.
Шаг 4. Регион и конфигурация сервера
Приложение должно быть развернуто на отдельном облачном сервере. Выберите регион размещения сервера и его конфигурацию.
В дальнейшем, если потребуется, вы сможете перейти на более мощный тариф.
Шаг 5. Настройка приложения
Сервис автоматически прочитает инструкции из докерфайла и соберет приложение в соответствии с ними.
На этом этапе вы можете задать переменные, если это необходимо. Если они прописаны в докерфайле, дублировать их не требуется.
В дальнейшем у вас будет возможность внести изменения в параметры приложения, а также выбрать другую ветку и коммит, и перезапустить деплой с новыми настройками, если потребуется.
Шаг 6. Информация о приложении
Задайте свое имя приложения, если требуется, и комментарий к нему. Это данные, которые будут отображаться в панели управления.
Также выберите, в какой проект его нужно добавить.
Эти настройки также можно изменить в дальнейшем.
Шаг 7. Деплой
Нажмите Запустить деплой. Как только процесс начнется, вы увидите лог деплоя на вкладке «Деплой».
Как правило, он содержит всю необходимую информацию для устранения возможных ошибок. Если что-то пойдет не так, например, из-за наличия ошибок в коде, в логе будут выведены уведомления о них с уточнением причины проблемы.
При первом развертывании проекта установка сервера может занять некоторое время. Как только процесс завершится, статус приложения обновится, а также вы увидите сообщение об этом в логе.
Готово!
IP-адрес приложения и бесплатный технический домен, привязанный к нему по умолчанию, можно найти на вкладе «Дашборд». Привязать собственный домен можно по нашей инструкции.
Приложение будет доступно по 443 порту; порт 80 также открыт.
В дальнейшем Apps будет отслеживать обновления в репозитории и, если включен автодеплой, автоматически перезапускать проект с новыми изменениями.
Была ли статья полезна?