Google Cloud Builds, Как ускорить время сборки приложения (пакеты npm) - PullRequest
0 голосов
/ 06 ноября 2018

Мое веб-приложение работает в Google Cloud Platform. В последнее время я понял, что время создания приложения занимает очень много времени, особенно когда вы тестируете функцию, скажем, обновите страницу, вы видите, что запуск приложения занимает очень много времени. Что я ищу, так это как ускорить этот процесс. Я использую образы докеров для создания реестра Google Cloud. Я не хочу перестраивать все пакеты npm каждый раз, когда в некоторых пакетах npm происходит обновление, я хочу перестраивать приложение.

вот мой файл cloudbuild.yaml для полимера

steps:
- name: 'gcr.io/cloud-builders/docker'
  args: [ 'build', '-t', 'gcr.io/$PROJECT_ID/myapp-polymer', '.' ]
images:
- 'gcr.io/$PROJECT_ID/myapp-polymer'

тогда вот мой основной файл cloudbuild.yaml

steps:
- name: 'gcr.io/cloud-builders/npm'
  args: ['--prefix', 'myapp','install']
- name: 'gcr.io/cloud-builders/npm'
  args: ['--prefix', 'myapp/functions', 'install']
- name: 'gcr.io/$PROJECT_ID/myapp-polymer'
  args: ['cd', 'myapp']
- name: 'gcr.io/$PROJECT_ID/myapp-polymer'
  args: ['build']

Я прочитал Google Cloud API, особенно раздел «Ускорение ваших сборок» (https://cloud.google.com/cloud-build/docs/speeding-up-builds)

Я думаю, что это просто кэширование сборок и использование их. Есть ли способ, которым я могу кэшировать конкретно npm-пакеты, зависимости и т. Д. В Google Cloud, чтобы мне не приходилось каждый раз создавать целое приложение? Моя главная цель - сократить время сборки, ускорить процесс сборки.

Спасибо!

1 Ответ

0 голосов
/ 08 ноября 2018

Вы можете использовать докер.

Поместите ваше приложение npm в докер. Затем вы можете поместить свое изображение докера (загрузить несколько слоев вашего изображения докера) в облачный реестр, например, gcr (Google Cloud Registry). Перед вашим шагом сборки вы можете извлечь свой образ из gcr.

Вот как примерно будет выглядеть этап сборки:

- name: 'gcr.io/cloud-builders/docker'
  args: [
          'build',
          '-t', 'test_image',
          '-f', 'Dockerfile',
          '.'
        ]
  id: 'build_test_image'
...