谷歌云构建,如何加快应用程序的构建时间(npm包)
我的web应用程序运行在Google云平台上,最近我意识到应用程序的构建时间非常长,特别是当您测试一个功能时,比如说刷新页面,您可以看到启动应用程序需要非常长的时间。我想要的是如何加快这个过程。我正在使用docker图像在google云注册表上构建。我不想每次都重新构建所有npm包,当某些npm包中有更新时,我想重新构建应用程序 这是聚合物的my cloudbuild.yaml文件谷歌云构建,如何加快应用程序的构建时间(npm包),npm,google-cloud-platform,google-cloud-build,Npm,Google Cloud Platform,Google Cloud Build,我的web应用程序运行在Google云平台上,最近我意识到应用程序的构建时间非常长,特别是当您测试一个功能时,比如说刷新页面,您可以看到启动应用程序需要非常长的时间。我想要的是如何加快这个过程。我正在使用docker图像在google云注册表上构建。我不想每次都重新构建所有npm包,当某些npm包中有更新时,我想重新构建应用程序 这是聚合物的my cloudbuild.yaml文件 steps: - name: 'gcr.io/cloud-builders/docker' args: [ '
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']
我读过谷歌云API,特别是加速构建一节
我认为它只是缓存构建图像并使用它。有没有什么方法可以在谷歌云中专门缓存npm包、依赖项等,这样我就不必每次构建整个应用程序?我的主要目标是减少构建时间,加快构建过程
谢谢 你可以用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'
你试过Kaniko吗?它可以将缓存保存在gcr.io中,如果您使用正确的步骤构建了Dockerfile,请参见,它将为您节省大量时间。以下是cloudbuild.yaml示例:
更多信息:Hello@markushinsche,感谢您的回复!实际上,我在docker中找到了我的应用程序,我想在googlebuild.yaml主目录中的构建步骤之前尝试一下,我想比较package.json文件。若并没有更新,那个么我不想再次安装所有的npm包。但我不知道如何比较docker外部和内部的package.json文件。我想运行我的javascript文件并发送两个package.json检查它们是否相等,然后我想创建映像npm I缓存或npm安装-取决于条件结果。在docker文件中如何运行if-else运行命令:您找到如何正确地执行此操作了吗?
- name: 'gcr.io/kaniko-project/executor:latest'
args:
- --destination=gcr.io/$PROJECT_ID/image
- --cache=true
- --cache-ttl=XXh