【发布时间】:2019-10-15 00:11:36
【问题描述】:
所以我最近将我的应用程序从 Angular 7 升级到了 Angular 8,我遇到了云构建 VM 的节点版本的问题,因为 Angular 8 需要节点版本 10.9 或更高版本,如下所示:
如何升级 Google Cloud VM 的节点版本,以免再次出现此错误?
谢谢。
【问题讨论】:
标签: node.js angular google-cloud-platform google-cloud-build
所以我最近将我的应用程序从 Angular 7 升级到了 Angular 8,我遇到了云构建 VM 的节点版本的问题,因为 Angular 8 需要节点版本 10.9 或更高版本,如下所示:
如何升级 Google Cloud VM 的节点版本,以免再次出现此错误?
谢谢。
【问题讨论】:
标签: node.js angular google-cloud-platform google-cloud-build
根据最新documentation:
Cloud Build 使您能够使用任何公开可用的容器映像来执行您的任务。公众号
nodeimage 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 问题。
【讨论】:
好的,经过数小时的谷歌搜索,事实证明,谷歌云平台提供了一个用于谷歌云构建的不同 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
【讨论】:
此链接包含所有当前版本及其标签:
https://console.cloud.google.com/gcr/images/cloud-builders/GLOBAL/npm
例如在cloudbuild.yaml我用过
使用current标签。
【讨论】:
好的,经过数小时尝试编译我的新应用并在 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这里访问原始文件
【讨论】:
根据他们的文档建议,您应该改用官方节点映像并指定 npm 入口点:
steps:
- name: node:10.15.1
entrypoint: npm
args: ['install']
https://github.com/GoogleCloudPlatform/cloud-builders/blob/master/npm/README.md
【讨论】: