Node.js Docker容器无法安装NPM包

Node.js Docker容器无法安装NPM包,node.js,docker,npm,npm-registry,Node.js,Docker,Npm,Npm Registry,在我的docker文件中,当涉及到安装npm软件包时,我会遇到以下错误: npm WARN athena@1.0.0 No description npm WARN athena@1.0.0 No repository field. npm ERR! code EAI_AGAIN npm ERR! errno EAI_AGAIN npm ERR! request to https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz failed, reas

在我的docker文件中,当涉及到安装npm软件包时,我会遇到以下错误:

npm WARN athena@1.0.0 No description
npm WARN athena@1.0.0 No repository field.

npm ERR! code EAI_AGAIN
npm ERR! errno EAI_AGAIN
npm ERR! request to https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz failed, reason: getaddrinfo EAI_AGAIN registry.npmjs.org registry.npmjs.org:443

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2018-06-05T13_33_53_797Z-debug.log
我的Dockerfile是:

FROM node:10.3-alpine
COPY . /app
WORKDIR /app
RUN npm install
EXPOSE 8080
ENTRYPOINT [ "npm run start:dev" ]
然而,在网上搜索时,按照Jkugyiya的帖子添加指令并没有解决问题。我想知道我是否正确地将该行添加到我的
/etc/host
文件中

我的问题是如何让Docker在映像中安装NPM包

谢谢

编辑: 根据@Capricorn的请求,开发环境详细信息如下: Ubuntu 18.04 Docker版本17.12

编辑2: 运行
pingregistry.npmjs.org
会产生类似于以下内容的源源不断的消息。但是,在发送和接收所有数据包时,请注意时间延迟:

64 bytes from registry.npmjs.org (151.101.72.162): icmp_seq=3 ttl=53 time=333 ms
64 bytes from registry.npmjs.org (151.101.72.162): icmp_seq=4 ttl=53 time=273 ms
64 bytes from registry.npmjs.org (151.101.72.162): icmp_seq=5 ttl=53 time=317 ms
64 bytes from registry.npmjs.org (151.101.72.162): icmp_seq=6 ttl=53 time=253 ms
64 bytes from registry.npmjs.org (151.101.72.162): icmp_seq=7 ttl=53 time=301 ms
64 bytes from registry.npmjs.org (151.101.72.162): icmp_seq=8 ttl=53 time=337 ms
...

由于此问题可能与您的开发环境有关,因此有关操作系统、docker版本、docker安装方式的其他详细信息可能会很有趣。此外,你有没有运行的docker容器可以访问互联网?@Capricorn,Ubuntu18.04,docker版本17.12,docker可以访问互联网。它下载了节点:10.3-alpine off dockerhub。我还可以成功执行搜索。在执行
npm安装之前,请尝试将
RUN ping registry.npmjs.org
添加到dockerfile。这应该告诉您它是否可以解析dns条目并路由出去。@Arcath我得到了错误:
ping:bad address'registry.npmjs.org'
您是如何修复的?