Поэтому я недавно обновил свое приложение с Angular 7 до Angular 8, и у меня возникли проблемы с версией узла виртуальной машины облачной сборки, поскольку для Angular 8 требуется версия узла 10.9 или выше, как показано ниже:
Как мне обновить версию узла облачной виртуальной машины Google, чтобы эта ошибка больше не появлялась?
Спасибо.
Итак, после нескольких часов гугления выяснилось, что облачная платформа Google предлагает реестр различных сборщиков облаков npm для использования с облачной сборкой Google.
Я мог бы решить свою проблему, создав собственный образ докера, но я хотел избежать этого в пользу образа докера облачных сборщиков по умолчанию. Я изменил свой файл cloudbuild.yaml, включив в него следующий сборщик gcr.io/cloud-builders/npm:node-10.10.0 вместо gcr.io/cloud-builders/npm, после чего обновил версию узла до node 10.10.0 и, как по волшебству, Angular 8 теперь можно собрать с помощью облачной сборки Google!
Конкретные версии узлов из репозитория облачных сборщиков можно найти здесь: https://console.cloud.google.com/gcr/images/cloud-builders/GLOBAL/npm.
где найти эти версии?
Действительно - кажется излишне сложным найти/угадать, какие версии использовать.
Версии можно найти здесь: console.cloud.google.com/gcr/images/cloud-builders/GLOBAL/…, как указано staad ниже.
Как предлагается в их документации, вы должны вместо этого использовать официальный образ узла и указать точку входа npm:
steps:
- name: node:10.15.1
entrypoint: npm
args: ['install']
https://github.com/GoogleCloudPlatform/cloud-builders/blob/master/npm/README.md
Хорошо, после нескольких часов попыток скомпилировать мое новое приложение и выполнить поиск в Google нет четкой информации о том, как использовать новую версию Node.js на платформе механизма приложений Google.
Я поставил перед собой задачу создать свой собственный файл cloudbuild.yaml для использования на облачной платформе Google, и это был мой результат, надеюсь, он поможет многим, у кого должна быть такая же ошибка:
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']
Вы можете получить доступ к исходному файлу здесь в Гитхаб
Спасибо, Джос, этот ответ помог мне решить мою ошибку.
По этой ссылке есть все актуальные версии и их теги:
https://console.cloud.google.com/gcr/images/cloud-builders/GLOBAL/npm
Например, в cloudbuild.yaml
я использовал
который использует тег current
.
Согласно последнему документация:
Cloud Build enables you to use any publicly available container image to execute your tasks. The public
node
image from Docker Hub comes preinstalled with npm and yarn tools
Это означает, что мы можем использовать любой тег Node.js из Docker Hub.
Что касается меня, я изменил - name: node
на - name: node:lts
в cloudbuild.yaml
, и это помогло исправить проблему Error: error:0308010C:digital envelope routines::unsupported
на этапе сборки приложения Nest.js.
Вы, сэр, джентльмены и ученый. Вы сэкономили МЕНЯ часы гугления, чтобы понять это.