- tocdepth
2
Lab 1: Развертывание frontend-приложения
В этой лабораторной работе вы получите первый практический опыт использования облачных сервисов для запуска контейнерных приложений — Container Apps и Artifact Registry.
Схема развертывания приложения:
Разработчик загружает (push) Docker-образ приложения в Artifact Registry.
Создает контейнер из загруженного образа в Container Apps.
Приложение запускается в контейнере и доступно всем пользователям из интернета.
В ходе лабораторной работы повторите этот процесс на примере развертываения простого frontend-приложения.
1. Подготовьте среду
Подготовьте среду, если не сделали этого ранее.
2. Клонируйте или скачайте репозиторий кода c GitVerse
Опциональный шаг.
Вы можете зарегистрироваться в GitVerse, если у вас еще нет аккаунта, и познакомиться с новой системой контроля версий. Этот шаг необязательный и не влияет на дальнейшее прохождение лабораторной работы.
Клонируйте репозиторий:
Перейдите в нужную директорию на локальном компьютере.
Выполните команду в терминале GitBash:
git clone https://gitverse.ru/cloudru/evo-containerapp-react-sample
3. Создайте реестр в Artifact Registry
В личном кабинете перейдите на карточку сервиса Artifact Registry.
Нажмите Создать реестр.
Укажите название реестра — оно станет частью URI, который вы будете использовать при работе в Docker CLI.
Нажмите Создать.
Скопируйте полученный URI реестра, он будет нужен для выполнения дальнейших шагов.
4. Получите ключи доступа для аутентификации
В личном кабинете перейдите в раздел Управление профилем.
Выберите раздел Ключи доступа и нажмите Создать ключ.
Введите краткое описание ключа, которое поможет в будущем идентифировать его среди других ключей.
Задайте время жизни ключа: от 1 до 365 дней.
Нажмите Создать.
После этого будут сгенерированы Key ID (логин) и Key Secret (пароль). Сохраните Key Secret. После того как вы закроете окно, повторно посмотреть его будет нельзя.
5. Пройдите аутентификацию в реестре Artifact Registry
Откройте терминал и введите команду для аутентификации. Вы можете использовать любой привычный для вас терминал.
docker login <registry_name>.cr.cloud.ru -u <key_id> -p <key_secret>
Где:
<registry_name>
— название реестра, которое вы указывали при его создании в Artifact Registry;<key_id>
— логин персонального ключа (Key ID);<key_secret>
— пароль персонального ключа (Key Secret).
6. Соберите и подготовьте Docker-образ
Cоберите на локальном компьютере готовый Docker-образ из репозитория GitVerse, выполнив в терминале следующую команду:
docker build --tag <registry_name>.cr.cloud.ru/react-hello-world https://gitverse.ru/cloudru/evo-containerapp-react-sample.git#master --platform linux/amd64
Команда собирает образ и тегирует его для дальнейшей загрузки в реестр.
Для создания контейнера Docker-образ должен быть собран под платформу linux/amd64, поэтому в команде используется флаг platform
со значением linux/amd64
.
7. Загрузите Docker-образ в реестр Artifact Registry
Загрузите образ в реестр Artifact Registry, выполнив команду:
docker push <registry_name>.cr.cloud.ru/react-hello-world
Где:
<registry_name>
— название реестра, которое вы указывали при его создании в Artifact Registry;react-hello-world
— название будущего репозитория в Artifact Registry. Название репозитория соответствует имени Docker-образа.
В личном кабинете перейдите в раздел с
сервиса Artifact Registry и убедитесь, что образ загружен.
8. Создайте и запустите контейнер
Откройте меню загруженного образа и нажмите Создать Container App.
Заполните поля и активируйте опции:
Название контейнера — глобально уникальное имя, на базе которого формируется адрес вашего приложения в домене *.containers.cloud.ru.
Порт контейнера — порт контейнера, который должен совпадать с портом вашего приложения. В этой лабораторной работе используем порт 8080.
server { listen 8080; root /usr/share/nginx/html; index index.html; location / { try_files $uri $uri/ /index.html; } }
vCPU/RAM — количество vCPU и RAM, которые выделяются для каждого экземпляра контейнера при обработке вызова. Выберите минимальную конфигурацию.
Минимальное и максимальное количество экземпляров при масштабировании сервиса. По умолчанию происходит масштабирование с 0, что может вызывать небольшую задержку при старте вашего приложения. Установите минимальное количество экземпляров — 0, а максимальное — 1.
Публичный адрес — активируйте опцию, чтобы получить URL-адрес для вызова приложения из интернета.
Нажмите Создать. Откроется страница сервиса Container Apps.
Контейнер будет запущен в течение нескольких секунд. Дождитесь, когда контейнер и ревизия перейдут в статус «Выполняется».
9. Проверьте рабостоспособность развернутного приложения
Дождитесь появления публичного URL, скопируйте его и вставьте в адресную строку браузера. Откроется страница приложения.
Что делать, если приложение не отвечает
Если приложение не отвечает проверьте в списке ревизий, что последняя созданнная ревизия находится в статусе «Выполняется».
Если ревизия находится в статусе «Публикуется» или «Ошибка», попробуйте создать новую ревизию, нажав кнопку Создать ревизию на основе выбранной.
Что дальше
В этой лабораторной работе вы научились:
загружать Docker-образ в Artifact Registry;
создавать и запускать контейнер из быстрого меню в Artifact Registry.
Во второй лабораторной работе вы научитесь разворачивать backend-приложение и познакомитесь с дополнительными настройками облачных сервисов Container Apps и Artifact Registry.
для Dev & Test