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