npm安装在Docker容器内部失败

时间:2020-04-09 03:57:23

标签: docker npm npm-install

我正在尝试让npm install在系统上的Docker容器中工作...

我尝试了以下容器:

  • nikolaik/python-nodejs:python3.8-nodejs12
  • nikolaik/python-nodejs:python3.8-nodejs12-alpine
  • minideb:stretch(与nvm一起安装)

它们都具有相同的错误。当我尝试安装npm软件包时,它将出现类似以下错误:

# npm install -g typescript                                                                                                                                                                                      
npm ERR! Unexpected end of JSON input while parsing near '...ipt":"next","tsd":"la'                                                                                                                                

npm ERR! A complete log of this run can be found in:                                                                                                                                                               
npm ERR!     /root/.npm/_logs/2020-04-09T03_42_16_003Z-debug.log

如果我运行类似npm cache clean --force的东西,然后再次运行install命令,它将在解析JSON的其他时候失败。

有趣的是,有时候,如果它是一个很小的软件包,它将毫无问题地进行安装:

# npm install padleft                                                                                                                                                                                   [12/1883]
npm WARN saveError ENOENT: no such file or directory, open '/package.json'
npm WARN notsup Unsupported engine for padleft@0.2.0: wanted: {"node":"6.3.1","npm":"3.10.6"} (current: {"node":"12.14.1","npm":"6.13.4"})
npm WARN notsup Not compatible with your version of node/npm: padleft@0.2.0
npm WARN enoent ENOENT: no such file or directory, open '/package.json'
npm WARN !invalid#1 No description
npm WARN !invalid#1 No repository field.
npm WARN !invalid#1 No README data
npm WARN !invalid#1 No license field.

+ padleft@0.2.0
added 1 package from 1 contributor and audited 2 packages in 1.472s
found 0 vulnerabilities

如果不快速下载就无法安装某些软件,这似乎失败了。我用nvm尝试了不同版本的node / npm,它们都做同样的事情。在我的主机上,npm可以正常工作。只是所有Docker容器中都有问题。我只是因为在另一个基于Ubuntu的Docker容器上安装了nvm而失败。

1 个答案:

答案 0 :(得分:1)

我只能猜测Container正在丢弃数据包。

尝试向容器中添加更多CPU。

https://docs.docker.com/config/containers/resource_constraints/

如果您愿意尝试其他操作:如果您未选择“主机模式网络”,请尝试。

https://docs.docker.com/network/host/

相关问题