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

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

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

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

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

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

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

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

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

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

Этап сборки

Это ядро ​​процесса сборки, отвечающее за создание образа контейнера, пригодного для запуска, и файла bundle.yaml , определяющего конфигурацию сборки. Он использует Cloud Native Buildpacks для эффективной упаковки приложения. Более подробную информацию о файле bundle.yaml можно найти на github .

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

  1. Runtime Buildpack : обеспечивает включение всех необходимых компонентов для запуска базового приложения Node.js и установку зависимостей.
  2. Monorepo Buildpack : настраивает последующие 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 имеет открытый исходный код.