如何解决应用引擎中的云构建触发器-Nodejs运行时错误
警告:您的package.json没有指定受支持的Node.js版本。请将您的应用程序固定到Node.js运行时的主要版本。
应用程序检测失败:错误:node.js检查器:找不到“ package.json”的“脚本”部分中的“开始”,也找不到“ server.js”文件。
我在package.json中添加了以下内容 “引擎”: { “ node”:“ ^ 13.8.0”, “ npm”:“ ^ 6.13.4” }, app.yaml文件
# [START runtime]
runtime: nodejs
env: flex
service: dev
handlers:
- url: /.*
secure: always
script: auto
redirect_http_response_code: 301
automatic_scaling:
min_num_instances: 1
max_num_instances: 2
cool_down_period_sec: 60
cpu_utilization:
target_utilization: 0.80
package.json
"scripts": {
"start": "serve -s ./build","prestart": "npm i -g serve","build": "react-scripts build","test": "react-scripts test","eject": "react-scripts eject"
}
cloudbuild.yaml
steps:
- name: gcr.io/cloud-builders/npm
entrypoint: 'npm'
args: [ install ]
- name: gcr.io/cloud-builders/npm
entrypoint: 'npm'
args: [ run,build,--prod ]
- name: gcr.io/cloud-builders/gcloud
entrypoint: 'npm'
args: [ app,deploy,'[public/app.yaml]',--version=$SHORT_SHA ]
解决方法
如果您使用的是GAE标准,请记住它目前支持Node.js 10和12 runtimes。
此外,正如官方GCP documentation所述:
默认情况下,运行时通过运行节点来启动您的应用程序 server.js 。如果您在package.json文件中指定了启动脚本, 运行时将改为运行指定的启动脚本。
"scripts": { "start": "node app.js" }
请查看this GitHub存储库,其中包含一个适用于GAE标准的简单应用程序,您可以将其用作参考。
编辑
您需要确保启动脚本正在启动Web服务器,该服务器在PORT环境变量指定的端口(通常为8080(link)指定的端口上响应HTTP请求。 / p>
Here,您会看到一个GAE灵活环境的示例,其中 app.js 包含
// Start the server
const PORT = process.env.PORT || 8080;
app.listen(PORT,() => {
console.log(`App listening on port ${PORT}`);
console.log('Press Ctrl+C to quit.');
});
package.json 具有
"scripts": {
"start": "node app.js"
}
在删除启动脚本后deploying在带有Cloud Build的GAE上进行采样或应用未启动服务器时,可以重现此错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。