繁体   English   中英

Docker 无法安装 npm 包

[英]Docker can't install npm packages

我在 ubuntu 服务器上运行 docker。

这似乎是一个码头工人的问题。 从 ubuntu 安装 package.json 工作正常。

npm http request GET https://registry.npmjs.org/express
npm info retry will retry, error on last attempt: Error: getaddrinfo EAI_AGAIN registry.npmjs.org:443

似乎无法访问 npm 注册表。 有任何想法吗?

平工作正常!

Dockerfile:

FROM node:4-slim

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

COPY package.json /usr/src/app/

RUN npm install

COPY . /usr/src/app

EXPOSE 3000

CMD [ "node", "server.js" ]

构建日志:

Sending build context to Docker daemon  66.05kB
Step 1/8 : FROM node:4-slim
 ---> cd692e27dc7f
Step 2/8 : RUN mkdir -p /usr/src/app
 ---> Running in 876d5978bdd7
 ---> 4bab541344aa
Removing intermediate container 876d5978bdd7
Step 3/8 : WORKDIR /usr/src/app
 ---> d66516529b5e
Removing intermediate container 6317ee72e20e
Step 4/8 : COPY package.json /usr/src/app/
 ---> 70483f422380
Removing intermediate container c3781f622ce4
Step 5/8 : RUN npm install
 ---> Running in 37d8afdf1c21
npm info it worked if it ends with ok
npm info using npm@2.15.11
npm info using node@v4.8.3
npm WARN package.json docker-node-test@1.0.0 No description
npm WARN package.json docker-node-test@1.0.0 No repository field.
npm WARN package.json docker-node-test@1.0.0 No README data
npm info preinstall docker-node-test@1.0.0
npm info attempt registry request try #1 at 10:58:13 AM
npm http request GET https://registry.npmjs.org/express
npm info attempt registry request try #1 at 10:58:13 AM
npm http request GET https://registry.npmjs.org/mongoose
npm info retry will retry, error on last attempt: Error: getaddrinfo EAI_AGAIN registry.npmjs.org:443
npm info retry will retry, error on last attempt: Error: getaddrinfo EAI_AGAIN registry.npmjs.org:443
npm info attempt registry request try #2 at 10:59:04 AM
npm http request GET https://registry.npmjs.org/mongoose
npm info attempt registry request try #2 at 10:59:04 AM
npm http request GET https://registry.npmjs.org/express
npm info retry will retry, error on last attempt: Error: getaddrinfo EAI_AGAIN registry.npmjs.org:443
npm info retry will retry, error on last attempt: Error: getaddrinfo EAI_AGAIN registry.npmjs.org:443
npm info attempt registry request try #3 at 11:00:44 AM
npm http request GET https://registry.npmjs.org/mongoose
npm info attempt registry request try #3 at 11:00:44 AM
npm http request GET https://registry.npmjs.org/express
npm ERR! Linux 4.4.0-78-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
npm ERR! node v4.8.3
npm ERR! npm  v2.15.11
npm ERR! code EAI_AGAIN
npm ERR! errno EAI_AGAIN
npm ERR! syscall getaddrinfo

npm ERR! getaddrinfo EAI_AGAIN registry.npmjs.org:443
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

npm ERR! Please include the following file with any support request:
npm ERR!     /usr/src/app/npm-debug.log

这是一个连接问题,与您的代码无关,Dockerfile很好。

这可能是间歇性的连接问题,也可能是网络防火墙的限制,或者是其他一些疯狂的IP疯狂。

我看到很多间歇性的连接问题,它们运行着各种工具来打包来自Internet的东西,有时只是其中之一。

在与您上次尝试的网络不同的计算机上尝试。

这是一个网络配置问题,更可能是iptables ...您是否设置了docker0自定义范围? 在那里看看。

这也是我在Windows版Docker和GitLab Windows运行器上遇到的一个问题。 问题是与docker run网络正常工作,并能够ping /解决所有域。 运行docker docker build npm时会失败,并显示EAI_AGAIN错误。

解析度

--network= docker build具有--network=可用于--network= build文档

查找用于Docker运行或docker-compose项目的可用Docker网络。

  • 查找docker网络: docker network ls
  • 从上方使用网络运行Docker构建docker build --network=<insert network from above> -f "myproj\\Dockerfile" -t app:latest

这是一个连接问题在我的情况下 docker restart 解决问题

服务 docker 重启

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM