Не удается развернуть функции Firebase с библиотекой Sharp в Google Cloud Build - PullRequest
0 голосов
/ 19 июня 2019

После перехода на Google Cloud Build из Bitbucket Pipelines развертывание Firebase не выполняется. Установка была успешно развернута как на Bitbucket Pipelines, так и локально.

Никаких дополнительных пояснений не приводится, кроме ошибки ниже. Я комментирую части кода, чтобы понять, что "const sharp = require ('sharp')" была единственной командой, которая приводила к сбою сборки.

Но нет очевидной причины, по которой «развертывание firebase» завершается неудачно с «require ('sharp”) », и мне приходится решать эту проблему.

Вывод Firebase в Google Cloud Build

Step #5: === Deploying to 'werkout-staging-b1483'...
Step #5: 
Step #5: i  deploying functions
Step #5: ✔  functions: Finished running predeploy script.
Step #5: i  functions: ensuring necessary APIs are enabled...
Step #5: ✔  functions: all necessary APIs are enabled
Step #5: i  functions: preparing functions/cloud_functions directory for uploading...
Step #5: 
Step #5: Error: There was an unknown problem while trying to parse function triggers. Please ensure you are using Node.js v6 or greater.
Finished Step #5
ERROR
ERROR: build step 5 "gcr.io/werkout-staging-b1483/firebase" failed: exit status 2

Dockerfile

FROM cypress/base:10.15.3

#CMD ["node"]

RUN npm install -g firebase-tools@^7.0.0
ENTRYPOINT ["/usr/local/bin/firebase"]

Есть идеи?

1 Ответ

0 голосов
/ 24 июня 2019

В этот раз я понял это по-настоящему.

Я запустил npm ci для создания облачных функций и их развертывания с помощью firebase для развертывания их в облаке. Проблема заключалась в том, что, как вы видите в файле докера выше, образ gcr.io/$PROJECT_ID/firebase был собран с узла 10.15.3, в то время как gcr.io/cloud-builders/npm использовал узел 8. Единственные пакеты npm, которые были Достаточно требователен был Sharp, и поэтому его не удалось построить.

Хуже всего то, что пожарная база очень скрытно относилась к этому, и я не имею возможности заняться этим, кроме чистой спекуляции.

- name: 'gcr.io/cloud-builders/npm'
  args: [ 'run', 'build' ]

- name: 'gcr.io/$PROJECT_ID/firebase'
  args: [ 'firebase', 'deploy' ]

Решение:

- name: 'gcr.io/cloud-builders/npm:node-10.10.0'
  args: [ 'run', 'build' ]

- name: 'gcr.io/$PROJECT_ID/firebase'
  args: [ 'firebase', 'deploy' ]

И это должно соответствовать версии механизма узла, указанного в облачных функциях package.json.

...