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

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

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

  1. Ubuntu : Инициализация рабочей области.

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

  3. pre-buildpack : Подготавливает среду сборки.

  4. build : Устанавливает зависимости и собирает ваше приложение.

  5. Издатель : Завершает создание производственного контейнера Cloud Run .

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

Скриншот экрана консоли Google Cloud, демонстрирующий этапы Cloud Build.

Инициализация рабочей области

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

Подготовитель

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

Предварительный сборочный пакет

Этот шаг подготавливает среду для жизненного цикла Cloud Native Buildpacks . Он включает в себя запуск промежуточного файла, который преобразует конфигурации и переменные среды, подготовленные на предыдущем этапе, в формат, ожидаемый инструментами CNB.

Строить

Это ядро ​​процесса сборки, отвечающее за генерацию исполняемого образа контейнера и файла bundle.yaml , определяющего конфигурацию сборки. Он использует Cloud Native Buildpacks и бинарный файл lifecycle creator для эффективной упаковки приложения. Дополнительную информацию о файле 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 является открытым исходным кодом.