Процесс сборки хостинга приложений

Firebase App Hosting использует Cloud Build для преобразования исходного кода вашего приложения в контейнерный формат, подходящий для развертывания в Cloud Run .

Процесс сборки проходит следующие основные этапы:

  1. Ingest : собирает исходный код и конфигурацию вашего приложения.

  2. Сборка : устанавливает зависимости и собирает ваше приложение.

  3. Handoff : завершает создание контейнера Cloud Run .

Эти три шага напрямую соответствуют шагам сборки 1, 2 и 3, отображаемым в Cloud Build в Google Cloud Console:

Снимок экрана консоли Google Cloud с этапами сборки Cloud Build

Стадия поглощения

Этот этап отвечает за обработку логики, предшествующей сборке. Он считывает, очищает и записывает пользовательские переменные окружения. Он также разыменовывает и закрепляет все секретные данные, указанные в файле apphosting.yaml .

Этап сборки

Это ядро процесса сборки, отвечающее за создание готового к запуску образа контейнера и файла bundle.yaml , определяющего конфигурацию сборки. Для эффективной упаковки приложения используются облачные Buildpack-пакеты . Подробнее о файле bundle.yaml можно узнать на GitHub .

Сборочные пакеты отвечают за преобразование исходного кода вашего приложения в готовые к использованию образы контейнеров. Firebase App Hosting объединяет несколько сборочных пакетов для завершения процесса сборки:

  1. Runtime Buildpack : обеспечивает включение всех необходимых компонентов для запуска базового приложения Node.js и установку зависимостей.
  2. Monorepo Buildpack : настраивает последующие пакеты сборки для обработки различных сценариев monorepo.
  3. Framework Buildpack : устанавливает нужный адаптер фреймворка (например, Angular или Next.js) и подготавливает последующие buildpack-пакеты.

    Адаптеры фреймворка отвечают за запуск команды сборки производственного образца и сопоставление любых соответствующих значений конфигурации, специфичных для фреймворка, со стандартным форматом, читаемым App Hosting .

  4. Менеджер пакетов Buildpack : выполняет установку зависимостей и собирает приложение с помощью npm, yarn или pnpm.

  5. Output Bundle Buildpack : определяет команду запуска и подготавливает выходной пакет к выполнению.

Этап передачи

На этом заключительном этапе вся информация, извлечённая из исходного кода приложения и образа контейнера сборки, упаковывается и отправляется в бэкенд App Hosting . Бэкенд App Hosting затем использует эту информацию для настройки Cloud Run с необходимыми настройками.

Узнать больше

Весь процесс сборки App Hosting имеет открытый исходный код.