Firebase App Hosting использует Cloud Build для преобразования исходного кода вашего приложения в контейнерный формат, подходящий для развертывания в Cloud Run .
Процесс сборки проходит через следующие основные этапы:
Ingest : собирает исходный код и конфигурацию вашего приложения.
Сборка : устанавливает зависимости и собирает ваше приложение.
Передача : завершает создание контейнера Cloud Run .
Эти три шага напрямую соответствуют шагам сборки 1, 2 и 3, отображаемым в Cloud Build в Google Cloud Console:
Стадия поглощения
Этот этап отвечает за обработку логики предварительной сборки. Он считывает, очищает и записывает пользовательские переменные среды. Он также разыменовывает и закрепляет любые секреты, указанные в файле apphosting.yaml
.
Этап сборки
Это ядро процесса сборки, отвечающее за создание образа контейнера, пригодного для запуска, и файла bundle.yaml
, определяющего конфигурацию сборки. Он использует Cloud Native Buildpacks для эффективной упаковки приложения. Более подробную информацию о файле bundle.yaml
можно найти на github .
Buildpacks отвечают за преобразование исходного кода вашего приложения в готовые к производству образы контейнеров. Firebase App Hosting объединяет несколько buildpacks для завершения процесса сборки:
- Runtime Buildpack : обеспечивает включение всех необходимых компонентов для запуска базового приложения Node.js и установку зависимостей.
- Monorepo Buildpack : настраивает последующие 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 buildpacks.
- Код для адаптеров фреймворка находится в репозитории firebase-framework-tools.
- Узнайте больше о сборочных пакетах Cloud Native и Cloud Build