如何解决Cloud Build无法npm安装NodeJS项目
我正在cloudbuild.yaml
文件中运行以下命令:
- name: "gcr.io/cloud-builders/npm"
args: ["install"]
此命令在7月30日正确运行,但是从10月5日开始,我得到此响应,然后是make
输出流,直到命令失败:
Already have image (with digest): gcr.io/cloud-builders/npm
> grpc@1.24.1 install /workspace/node_modules/grpc
> node-pre-gyp install --fallback-to-build --library=static_library
node-pre-gyp WARN Using request for node-pre-gyp https download
node-pre-gyp WARN Tried to download(404): https://node-precompiled-binaries.grpc.io/grpc/v1.24.1/node-v83-linux-x64-glibc.tar.gz
node-pre-gyp WARN Pre-built binaries not found for grpc@1.24.1 and node@14.10.0 (node-v83 ABI,glibc) (falling back to source compile with node-gyp)
即使我从以前成功的git commits重建,我也会收到此响应
我相信这可能是由于Cloud Build试图根据最近成功构建的输出将NodeJS项目构建为与以前不同的版本:
Already have image (with digest): gcr.io/cloud-builders/npm
> grpc@1.24.1 install /workspace/node_modules/grpc
> node-pre-gyp install --fallback-to-build --library=static_library
node-pre-gyp WARN Using request for node-pre-gyp https download
[grpc] Success: "/workspace/node_modules/grpc/src/node/extension_binary/node-v57-linux-x64-glibc/grpc_node.node" is installed via remote
我在我的package.json
中添加了以下行,以尝试将NodeJS版本设置为v57
(6.13.4
),但无效:
"engines" : { "node" : "6.13.4" },
任何帮助将不胜感激。最好是如何防止我的构建版本更改,因为这种意外更改使我花费了比应该花费的时间更多的时间
谢谢!
解决方法
这似乎是一个已知问题。
第一个解决方案是将nodejs版本降级到10.18.0。
后来,但必须使用needle进行下载的任何人:
node-pre-gyp WARN Using needle for node-pre-gyp https download
可以通过先安装请求来解决此问题:
npm install request
然后,像往常一样安装grpc:
npm install grpc
这是因为在安装过程中,node-pre-gyp具有以下代码段:
try {
http_get.impl = require('request');
http_get.type = 'request';
log.warn("Using request for node-pre-gyp https download");
} catch (e) {
http_get.impl = require('needle');
http_get.type = 'needle';
log.warn("Using needle for node-pre-gyp https download");
}
因此不使用请求,因为任何package.json没有请求。 预安装请求可以为我解决此问题。 重要的是必须从任何npm配置中删除所有cafile选项 可以再次将ssl设置为true,并将NODE_TLS_REJECT_UNAUTHORIZED设置为true。
,这是节点版本check the available versions here
的错误设置版本,例如:
- name: "gcr.io/cloud-builders/npm:node-12.18.3"
args: ["install"]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。