С помощью этого руководства вы научитесь разворачивать контейнерное приложение через сервис Workflow Studio.
Вы будете использовать следующие сервисы:
Workflow Studio — платформа для автоматизации инженерных задач в облаке.
Container Apps — сервис для запуска контейнерных приложений в облаке. Не требует знания Kubernetes и создания виртуальных машин.
Систему контроля версий Git.
Шаги:
Зарегистрируйтесь в личном кабинете Cloud.ru.
Если вы уже зарегистрированы, войдите под своей учетной записью.
Вы можете подготовить собственный Git-репозиторий с приложением или использовать один из наших примеров. Если используете готовый пример, этот шаг можно пропустить и сразу перейти к созданию сервиса в Workflow Studio.
Готовые примеры:
game-ridiculous-artifacts — компьютерная онлайн-игра.
recordacion — приложение на Python.
Если вы решили использовать собственный репозиторий:
Убедитесь, что в нем есть Dockerfile, и он находится в корне репозитория:
ls -lacat Dockerfile
Проверьте, что:
Docker-образ собирается без ошибок.
Приложение запускается внутри контейнера.
Приложение получает порт из переменной окружения PORT и принимает запросы на этот порт или использует по умолчанию порт 8080.
Сейчас поддерживается только порт 8080.
Приложение привязано к адресу 0.0.0.0.
Порт приложения указан через EXPOSE или настроен в параметрах для развертывания.
весь код и Dockerfile отправлены в нужную ветку, например main.
Проверьте приложение локально:
docker build -t <name>:local .docker run --rm -p 8080:8080 -e PORT=8080 <name>:local
Где <name> — название приложения.
После запуска откройте приложение по адресу http://localhost:<port>, где <port> — номер порта, на который приложение получает запросы.
В личном кабинете на верхней панели слева нажмите и выберите Разработка → Workflow Studio.
Перейдите Services → Мои сервисы.
Нажмите Создать сервис.
Заполните поля:
Название — укажите название сервиса.
Например, lab-container-app.
Репозиторий — выберите Другой Git-провайдер и укажите URL-адрес вашего репозитория.
Если используете готовые примеры приложений, укажите их URL-адреса:
game-ridiculous-artifacts — https://github.com/Nick1994209/game-ridiculous-artifacts;
recordacion — https://github.com/Nick1994209/recordacion.
Ветка — укажите ветку, из которой должно выполняться развертывание.
Например, main.
Нажмите Создать сервис.
После создания в карточке сервиса появится статус «Готово». Приложение запустится автоматически.
Во время создания сервиса Workflow Studio выполняет следующие действия:
Создает реестр для хранения собранного артефакта.
Запускает команду docker build на основе Dockerfile.
Загружает собранный образ в созданный реестр.
Создает контейнер в Container Apps на основе образа.
Запускает приложение и ожидает его готовности.
Если сервис долго не переходит в статус «Готово», откройте логи сборки и запуска. Проверьте прежде всего:
ошибки в Dockerfile;
верно ли указаны рабочая директория и команда запуска;
отсутствие зависимостей;
не игнорируется ли переменная PORT или используется порт 8080;
приложение привязано к адресу 0.0.0.0;
репозиторий публичный и к нему есть доступ;
ошибки «health check» или инициализации приложения.
Проверьте, что приложение запущено и открывается.
Перейдите в сервис, который вы создали на втором шаге.
В карточке сервиса скопируйте URL-адрес из поля Домен.
Вставьте URL-адрес в адресную строку браузера и откройте приложение.
Вы научились разворачивать контейнерное приложение через Workflow Studio.