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

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

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

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

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

  3. Передача управления : Завершает создание производственного контейнера Cloud Run .

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

Скриншот экрана консоли 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 : Настраивает последующие пакеты сборки для обработки различных сценариев использования монорепозитория.
  3. Framework Buildpack : Устанавливает необходимый адаптер фреймворка (например, Angular или Next.js) и подготавливает последующие сборки.

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

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

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

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

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

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

Весь процесс разработки App Hosting является открытым исходным кодом.