Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 仅在Docker中构建时不支持引擎节点/NPM_Node.js_Docker_Npm_Alpine_Nvm - Fatal编程技术网

Node.js 仅在Docker中构建时不支持引擎节点/NPM

Node.js 仅在Docker中构建时不支持引擎节点/NPM,node.js,docker,npm,alpine,nvm,Node.js,Docker,Npm,Alpine,Nvm,我的包.json中有一个依赖项,它本身具有以下依赖项: “节点rdkafka”:“^2.5.0”, 在本地计算机上使用nvm,并将我的节点版本设置为8.9.1,并且我的npm版本为5.5.1,我可以成功运行 npm安装节点-rdkafka@2.7.1 但是当从docker映像中运行相同的东西时(即npm install): 来自节点:10.13.0-alpine或来自节点:8.9.1-alpine 我得到以下错误: npm ERR! notsup Unsupported engine for

我的
包.json中有一个依赖项,它本身具有以下依赖项:

“节点rdkafka”:“^2.5.0”,

在本地计算机上使用
nvm
,并将我的节点版本设置为
8.9.1
,并且我的
npm
版本为
5.5.1
,我可以成功运行

npm安装节点-rdkafka@2.7.1

但是当从docker映像中运行相同的东西时(即
npm install
):

来自节点:10.13.0-alpine
来自节点:8.9.1-alpine

我得到以下错误:

npm ERR! notsup Unsupported engine for node-rdkafka@2.7.1: wanted: {"node":">=12.0.0"} (current: {"node":"10.13.0","npm":"6.4.1"})
npm ERR! notsup Not compatible with your version of node/npm: node-rdkafka@2.7.1
npm ERR! notsup Not compatible with your version of node/npm: node-rdkafka@2.7.1
npm ERR! notsup Required: {"node":">=12.0.0"}
npm ERR! notsup Actual:   {"npm":"6.4.1","node":"10.13.0"}
对这种不一致性有什么看法吗


我显然不需要这么高的节点版本。但是它说我会的。

在Docker中
npm安装之前尝试删除
package lock.json

rm package-lock.json
npm i

package.json
中的engines属性允许我们建立一系列版本

With
=12
正在请求版本为12或更高的节点

因此,解决方案是安装请求的版本:

FROM node:12

无论如何,我建议您查看Docker当前支持的版本。

从日志中可以看出,您确信Docker在本地环境(具有nvm的环境)上工作正常吗?您可能认为可能存在一些不允许的破坏性更改,如果有什么问题的话,那不是docker的问题,而是您的本地节点安装的问题,它欺骗了库忽略节点版本。奇怪的是,最小的设置(简单的docker文件,带有
FROM node:10.13.0运行npm install node-rdkafka@2.7.1
)为我正确构建,当然,我不使用alpine,因为rdkafka需要python可执行文件和其他一些我不想处理的设置。。。你能提供完整的
package.json
Dockerfile
?嗯。。我仍然在节点10.13.0的
中遇到同样的问题,这是因为
.npmrc
文件中有一个设置
engine strict=true
,不能为我解决这个问题。