npm在Docker容器内部安装失败

npm在Docker容器内部安装失败,docker,npm,npm-install,Docker,Npm,Npm Install,我正在尝试在我的系统上的Docker容器内部安装npm 我尝试了以下容器: nikolaik/python节点:python3.8-nodejs12 nikolaik/python节点:python 3.8-nodejs12-alpine minideb:stretch(与nvm一起安装) 它们都有相同的错误。当我尝试安装npm软件包时,它将出现如下错误: #npm安装-g typescript npm错误!在“…ipt”:“next”,“tsd”:“la”附近解析时,JSON输入意外结束

我正在尝试在我的系统上的Docker容器内部安装
npm

我尝试了以下容器:

  • nikolaik/python节点:python3.8-nodejs12
  • nikolaik/python节点:python 3.8-nodejs12-alpine
  • minideb:stretch
    (与nvm一起安装)
它们都有相同的错误。当我尝试安装npm软件包时,它将出现如下错误:

#npm安装-g typescript
npm错误!在“…ipt”:“next”,“tsd”:“la”附近解析时,JSON输入意外结束
npm错误!此运行的完整日志可在以下位置找到:
npm错误/root/.npm/_logs/2020-04-09T03_42_16_003Z-debug.log
如果我运行类似于
npmcacheclean--force
,然后再次运行install命令,它将在解析JSON的其他某个点失败

有趣的是,有时如果它是一个非常小的软件包,那么安装它时不会出现任何问题:

#npm安装焊盘左[12/1883]
npm WARN saveError ENOUNT:没有这样的文件或目录,请打开“/package.json”
npm WARN notsup不支持的发动机padleft@0.2.0:通缉:{“节点”:“6.3.1”,“npm”:“3.10.6”}(当前:{“节点”:“12.14.1”,“npm”:“6.13.4”})
npm WARN notsup与您的node/npm版本不兼容:padleft@0.2.0
npm WARN ENOUNT ENOUNT:没有这样的文件或目录,请打开“/package.json”
npm警告!无效#1无说明
npm警告!无效#1无存储库字段。
npm警告!无效#1无自述文件数据
npm警告!无效#1无许可证字段。
+ padleft@0.2.0
在1.472s中添加了1个参与者的1个包,并审核了2个包
发现0个漏洞

如果它不能安装一些东西,如果它不能超快速下载,那么它看起来几乎失败了。我用nvm尝试了不同版本的node/npm,它们都做了相同的事情。在我的主机上,npm工作正常。所有Docker容器中都有问题。我刚刚在另一个基于Ubuntu的Docker容器上安装了nvm版本,但失败了。

我只能猜测该容器正在丢弃数据包

尝试向容器中添加更多CPU

如果您愿意尝试其他事情:如果您没有选择“主机模式网络”,请尝试


这是主机模式网络。而不是要求容器完成网络数据包的所有工作(这些内核非常健壮,而容器很糟糕)。好的所以问题是当我使用主机模式时,我不能像我需要的那样转发端口。我尝试将CPU固定到容器上,但没有任何帮助。我可以整天使用apt get或pip install进行安装,唯一不起作用的是npm。我不明白。如果我ping google.com并让它运行,我永远不会丢弃数据包或任何东西。这一点很好。我要公开承认,我讨厌使用基于NPM和JS的客户端渲染。没有什么是坚如磐石的,一切都是可疑的另外,您可能希望提供类似Parallels或Oracle VirtualBox(免费)的东西,以确保虚拟化使容器的代码健壮