tocdepth

2

Lab 1: Развертывание frontend-приложения

В этой лабораторной работе вы получите первый практический опыт использования облачных сервисов для запуска контейнерных приложений — Container Apps и Artifact Registry.

Схема развертывания приложения:

../_images/dev_experience.svg
  1. Разработчик загружает (push) Docker-образ приложения в Artifact Registry.

  2. Создает контейнер из загруженного образа в Container Apps.

  3. Приложение запускается в контейнере и доступно всем пользователям из интернета.

В ходе лабораторной работы повторите этот процесс на примере развертываения простого frontend-приложения.

1. Подготовьте среду

Подготовьте среду, если не сделали этого ранее.

2. Клонируйте или скачайте репозиторий кода c GitVerse

Опциональный шаг.

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

../_images/gitverse_clone.png

Клонируйте репозиторий:

  1. Перейдите в нужную директорию на локальном компьютере.

  2. Выполните команду в терминале GitBash:

    git clone https://gitverse.ru/cloudru/evo-containerapp-react-sample
    

3. Создайте реестр в Artifact Registry

  1. В личном кабинете перейдите на карточку сервиса Artifact Registry.

    ../_images/ar-go-console.png
  2. Нажмите Создать реестр.

  3. Укажите название реестра — оно станет частью URI, который вы будете использовать при работе в Docker CLI.

  4. Нажмите Создать.

    ../_images/ar-registry-create.png
  5. Скопируйте полученный URI реестра, он будет нужен для выполнения дальнейших шагов.

    ../_images/ar-registry-copy-uri.png

4. Получите ключи доступа для аутентификации

  1. В личном кабинете перейдите в раздел Управление профилем.

    ../_images/profile-settings.png
  2. Выберите раздел Ключи доступа и нажмите Создать ключ.

    ../_images/ar-secrets.png
  3. Введите краткое описание ключа, которое поможет в будущем идентифировать его среди других ключей.

  4. Задайте время жизни ключа: от 1 до 365 дней.

  5. Нажмите Создать.

    После этого будут сгенерированы 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

  1. Загрузите образ в реестр Artifact Registry, выполнив команду:

    docker push <registry_name>.cr.cloud.ru/react-hello-world
    

    Где:

    • <registry_name> — название реестра, которое вы указывали при его создании в Artifact Registry;

    • react-hello-world — название будущего репозитория в Artifact Registry. Название репозитория соответствует имени Docker-образа.

  2. В личном кабинете перейдите в раздел с Реестры → Репозитории → Артефакты сервиса Artifact Registry и убедитесь, что образ загружен.

    ../_images/ar-repository-sucess.png

8. Создайте и запустите контейнер

  1. Откройте меню загруженного образа и нажмите Создать Container App.

    ../_images/ar-create-container.png
  2. Заполните поля и активируйте опции:

    ../_images/ar-container-params.png
    • Название контейнера — глобально уникальное имя, на базе которого формируется адрес вашего приложения в домене *.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-адрес для вызова приложения из интернета.

  3. Нажмите Создать. Откроется страница сервиса Container Apps.

Контейнер будет запущен в течение нескольких секунд. Дождитесь, когда контейнер и ревизия перейдут в статус «Выполняется».

../_images/ca-container-run.png

9. Проверьте рабостоспособность развернутного приложения

Дождитесь появления публичного URL, скопируйте его и вставьте в адресную строку браузера. Откроется страница приложения.

../_images/app-go.png

Что делать, если приложение не отвечает

Если приложение не отвечает проверьте в списке ревизий, что последняя созданнная ревизия находится в статусе «Выполняется».

Если ревизия находится в статусе «Публикуется» или «Ошибка», попробуйте создать новую ревизию, нажав кнопку Создать ревизию на основе выбранной.

Что дальше

В этой лабораторной работе вы научились:

  • загружать Docker-образ в Artifact Registry;

  • создавать и запускать контейнер из быстрого меню в Artifact Registry.

Во второй лабораторной работе вы научитесь разворачивать backend-приложение и познакомитесь с дополнительными настройками облачных сервисов Container Apps и Artifact Registry.

Запустили Evolution free tier
для Dev & Test
Получить