Google Cloud Builds,如何加快应用程序的构建时间(npm包)

u4dcyp6a  于 2023-03-30  发布在  Go
关注(0)|答案(3)|浏览(149)

我的Web应用程序运行在Google Cloud Platform上,最近我意识到应用程序的构建时间真的很长,特别是当你测试一个功能时,比如刷新页面,你可以看到启动应用程序需要很长时间。我正在寻找的是如何加快这个过程。我正在使用Docker镜像在Google Cloud Registry上构建。我不想每次都重新构建所有的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
我认为它只是缓存构建图像并使用它。有没有什么方法可以在Google Cloud中专门缓存npm包,依赖项等,以便我不必每次构建整个应用程序?我的主要目标是减少构建时间,加快构建过程。
谢谢!

lvmkulzt

lvmkulzt1#

你试过Kaniko吗?它可以保存www.example.com中该高速缓存gcr.io,如果你用正确的步骤构建了你的Dockerfile(参见https://cloud.google.com/blog/products/gcp/7-best-practices-for-building-containers),它应该可以节省你很多时间。下面是cloudbuild.yaml的例子:

- name: 'gcr.io/kaniko-project/executor:latest'
  args:
  - --destination=gcr.io/$PROJECT_ID/image
  - --cache=true
  - --cache-ttl=XXh

更多信息:https://cloud.google.com/cloud-build/docs/kaniko-cache

hwamh0ep

hwamh0ep2#

你可以使用Docker。
将你的npm应用程序放入docker。然后你可以将你的docker镜像(上传你的docker镜像的一些层)推送到云注册表,例如gcr(Google Cloud Registry)。在构建步骤之前,你可以从gcr中拉取你的镜像。
构建步骤大致如下:

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

mec1mxoz3#

Google Cloud使用vCPU进行所有操作,因此,如果计费没有问题,则可以通过使用以下内容更新cloudbuild.yaml来升级用于运行构建的CPU:

steps:
- name: 'gcr.io/cloud-builders/docker'
  args: ['build', '-t', 'gcr.io/my-project/image1', '.']
options:
  machineType: 'E2_HIGHCPU_8' # <-- insert upgraded CPU type here

来源:https://cloud.google.com/build/docs/optimize-builds/increase-vcpu-for-builds

相关问题