Firebase App Hosting использует Cloud Build для преобразования исходного кода вашего приложения в контейнеризированный формат, подходящий для развертывания в Cloud Run .
Процесс строительства проходит следующие ключевые этапы:
Ingest : Собирает исходный код и конфигурацию вашего приложения.
Сборка : Устанавливает зависимости и собирает ваше приложение.
Передача управления : Завершает создание производственного контейнера Cloud Run .
Эти три шага напрямую соответствуют шагам сборки 1, 2 и 3, отображаемым в Cloud Build в консоли Google Cloud:

Этап приема внутрь
На этом этапе обрабатывается логика предварительной сборки. Он считывает, проверяет и записывает определяемые пользователем переменные среды. Также он разыменовывает и закрепляет любые секреты, указанные в файле apphosting.yaml .
Этап строительства
Это ядро процесса сборки, отвечающее за генерацию исполняемого образа контейнера и файла bundle.yaml , определяющего конфигурацию сборки. Он использует Cloud Native Buildpacks для эффективной упаковки приложения. Более подробную информацию о файле bundle.yaml можно найти на GitHub .
Buildpacks отвечают за преобразование исходного кода вашего приложения в готовые к использованию в производственной среде образы контейнеров. Firebase App Hosting объединяет несколько Buildpacks для завершения процесса сборки:
- Runtime Buildpack : Гарантирует включение всех необходимых компонентов для запуска базового приложения Node.js и установку зависимостей.
- Monorepo Buildpack : Настраивает последующие пакеты сборки для обработки различных сценариев использования монорепозитория.
Framework Buildpack : Устанавливает необходимый адаптер фреймворка (например, Angular или Next.js) и подготавливает последующие сборки.
Адаптеры фреймворка отвечают за выполнение команды сборки, адаптированной для производственной среды, и сопоставление любых соответствующих значений конфигурации, специфичных для фреймворка, со стандартным форматом, читаемым App Hosting .
Менеджер пакетов Buildpack : выполняет установку зависимостей и собирает приложение с помощью npm, yarn или pnpm.
Output Bundle Buildpack : Определяет команду запуска и подготавливает выходной пакет для выполнения.
Этап передачи
На заключительном этапе вся информация, извлеченная из исходного кода приложения, а также образ контейнера сборки, упаковывается и отправляется на серверную часть App Hosting . Затем серверная часть App Hosting использует эту информацию для настройки Cloud Run с соответствующими параметрами.
Узнать больше
Весь процесс разработки App Hosting является открытым исходным кодом.
- Код buildpack находится в репозитории buildpacks Google Cloud.
- Код для адаптеров фреймворка находится в репозитории firebase-framework-tools.
- Узнайте больше о сборочных пакетах Cloud Native и Cloud Build.