为什么NPM在本地工作而不在Docker上工作?

时间:2019-05-21 14:00:10

标签: node.js docker npm proxy

我在Windows 10上

我在一个新项目上,不能在npm install上使用npm audit fixdocker-compose up -d,所以它卡在了第一个npm安装中

NPM正在使用我配置的代理在本地工作:

npm config set proxy http://proxy.company.com:8080

npm config set https-proxy http://proxy.company.com:8080

我尝试配置Docker代理,Windows代理和npm代理,并手动安装npm文件夹,并且在没有docker的情况下可以正常工作

我也在Linux和其他计算机上尝试过,但也无法正常工作

节点版本为:v10.15.0

Npm版本为:6.9.0

npm ERR! code ECONNREFUSED
npm ERR! errno ECONNREFUSED
npm ERR! FetchError: request to https://registry.npmjs.org/cors failed, reason: connect ECONNREFUSED ip.ip.ip.ip:443
npm ERR!     at ClientRequest.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/node-fetch-npm/src/index.js:68:14)
npm ERR!     at ClientRequest.emit (events.js:196:13)
...

我可以提供完整的错误

我认为这是一个代理问题,但我不明白为什么以及如何尝试其他尝试

在另一个网络上,我可以docker-compose up -d没问题

E:我尝试没有结果:

ENV HTTP_PROXY "http://proxy.company.com:8080"

并配置.docker/config.json

2 个答案:

答案 0 :(得分:2)

http://proxy.company.com:8080

泊坞窗网络无法解析。您应使用与主机相同的网络接口运行泊坞窗 通过将--network host传递给您的docker run命令

答案 1 :(得分:0)

我必须使用以下JSON文件/.docker/config.json配置容器代理:

{
 "proxies":
 {
   "default":
   {
     "httpProxy": "http://username:password@PROXY_IP:port",
     "httpsProxy": "http://username:password@PROXY_IP:port",
     "noProxy": "noproxiesinformation"
   }
 }
}

因此配置Docker代理和Docker容器代理,并且可以正常工作