如何在谷歌云构建上升级节点 js 版本
Posted
技术标签:
【中文标题】如何在谷歌云构建上升级节点 js 版本【英文标题】:How to upgrade node js version on google cloud build 【发布时间】:2019-10-15 00:11:36 【问题描述】:所以我最近将我的应用程序从 Angular 7 升级到了 Angular 8,我遇到了云构建 VM 的节点版本的问题,因为 Angular 8 需要节点版本 10.9 或更高版本,如下所示:
如何升级 Google Cloud VM 的节点版本,以免再次出现此错误?
谢谢。
【问题讨论】:
【参考方案1】:根据最新documentation:
Cloud Build 使您能够使用任何公开可用的容器映像来执行您的任务。公众号
node
image from Docker Hub 预装了 npm 和 yarn 工具
这意味着我们可以使用 Docker Hub 中的任何 Node.js 标签。
就我而言,我将 cloudbuild.yaml
中的 - name: node
更改为 - name: node:lts
,这有助于解决 Nest.js 应用程序构建步骤中的 Error: error:0308010C:digital envelope routines::unsupported
问题。
【讨论】:
【参考方案2】:好的,经过数小时的谷歌搜索,事实证明,谷歌云平台提供了一个用于谷歌云构建的不同 npm 云构建器的注册表。
我本可以通过创建自己的 docker 镜像来解决我的问题,但我想避免这种情况,而使用默认的云构建器 docker 镜像。我更改了我的 cloudbuild.yaml 文件以包含以下构建器“gcr.io/cloud-builders/npm:node-10.10.0”而不是“gcr.io/cloud-builders/npm”,然后将节点版本更新为节点10.10.0 和神奇的 Angular 8 现在可以通过谷歌云构建来构建!
可以在此处找到来自云构建器存储库的特定节点版本:https://console.cloud.google.com/gcr/images/cloud-builders/GLOBAL/npm
【讨论】:
先生,您既是绅士又是学者。您节省了我数小时的谷歌搜索时间。 我们在哪里可以找到这些版本? 确实 - 似乎很难找到/猜测要使用的版本。 版本可以在这里找到:console.cloud.google.com/gcr/images/cloud-builders/GLOBAL/… 如下 staad 所述【参考方案3】:此链接包含所有当前版本及其标签:
https://console.cloud.google.com/gcr/images/cloud-builders/GLOBAL/npm
例如在cloudbuild.yaml
我用过
使用current
标签。
【讨论】:
【参考方案4】:好的,经过数小时尝试编译我的新应用并在 Google 上搜索,没有关于如何在 Google 应用引擎平台中使用新版本 Node.js 的明确信息。
我给自己构建自己的文件 cloudbuild.yaml 以在谷歌云平台上使用的任务,这是我的结果,我希望它对许多必须有同样错误的人有所帮助:
steps:
# Install node packages
- name: node:10.16.3
entrypoint: npm
args: ['install']
# Build productive files
- name: node:10.16.3
entrypoint: npm
args: [ 'run', 'build', '--prod' ]
# Deploy to google cloud app engine
- name: "gcr.io/cloud-builders/gcloud"
args: ['app', 'deploy', '--version=demo']
您可以在GitHub这里访问原始文件
【讨论】:
谢谢乔斯,这个答案帮助我解决了我的错误。【参考方案5】:根据他们的文档建议,您应该改用官方节点映像并指定 npm 入口点:
steps:
- name: node:10.15.1
entrypoint: npm
args: ['install']
https://github.com/GoogleCloudPlatform/cloud-builders/blob/master/npm/README.md
【讨论】:
以上是关于如何在谷歌云构建上升级节点 js 版本的主要内容,如果未能解决你的问题,请参考以下文章