Развертывание 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.
- 1. Подготовьте среду
- 2. Клонируйте или скачайте репозиторий кода c GitVerse
- 3. Создайте реестр в Artifact Registry
- 4. Получите ключи доступа для аутентификации
- 5. Пройдите аутентификацию в реестре Artifact Registry
- 6. Соберите и подготовьте Docker-образ
- 7. Загрузите Docker-образ в реестр Artifact Registry
- 8. Создайте и запустите контейнер
- 9. Проверьте рабостоспособность развернутного приложения
- Что дальше