带有Sharp库的Firebase部署功能在Google Cloud Build中失败

时间:2019-06-19 20:41:08

标签: node.js firebase google-cloud-functions google-cloud-build sharp

从Bitbucket Pipelines迁移到Google Cloud Build后,Firebase部署失败。该设置已在Bitbucket管道和本地成功部署。

除了下面的错误外,没有给出进一步的解释。我对代码的一部分进行注释,以意识到“ 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 :(得分:0)

我这次是真的。

我运行了npm ci来构建云功能,然后将它们部署在Firebase上以将它们部署到云中。问题是,正如您在上面的docker文件中看到的那样,gcr.io / $ PROJECT_ID / firebase映像是使用节点10.15.3构建的,而gcr.io/cloud-builders/npm使用的是节点8。夏普足够挑剔,因此未能建立。

最糟糕的是,firebase对此非常保密,除了纯粹的猜测之外,我没有其他解决方法。

- 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中指定的节点引擎的版本匹配。