首页 > 解决方案 > Express js npm install 失败原因:getaddrinfo EAI_AGAIN

问题描述

我有一个 Node.JS / Express.JS 服务器端程序,它在 Node.JS docker 容器中运行。它已经工作了大约 2 年,现在它在安装时产生了一个奇怪的错误。我使用 docker-compose 来安装/运行程序。

Dockerfile:

FROM node:10
ARG PORT
ENV PORT ${PORT}

# Create app directory
ADD backend /app
WORKDIR /app

RUN npm ci --only=production

EXPOSE $PORT

CMD ["npm", "run", "start-prod"]

当我尝试安装它时(使用docker-compose,每次都会失败,并显示以下消息:

Building backend
Step 1/10 : FROM node:10
 ---> a8441ebf4e4d
Step 2/10 : ARG PORT
 ---> Using cache
 ---> d985b4141806
Step 3/10 : ENV PORT ${PORT}
 ---> Using cache
 ---> e053f5bb49fa
Step 4/10 : ADD backend /app
 ---> Using cache
 ---> 409d0ab160ea
Step 5/10 : WORKDIR /app
 ---> Using cache
 ---> b7aad109486b
Step 6/10 : RUN cp environment-prod-docker.js environment.js
 ---> Using cache
 ---> 218df5ff1cff
Step 7/10 : RUN cat environment.js
 ---> Using cache
 ---> 87965e20e57e
Step 8/10 : RUN npm ci --only=production
 ---> Running in 9352da8c367e
npm WARN prepare removing existing node_modules/ before installation
npm ERR! code EAI_AGAIN                                                                                                                                                                                                                                                        
npm ERR! errno EAI_AGAIN                                                                                                                                                                                                                                                       
npm ERR! request to https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz failed, reason: getaddrinfo EAI_AGAIN registry.npmjs.org registry.npmjs.org:443                                           

我读过这可能是代理错误。我已尝试更改为我的家庭 wifi、我的家庭电缆和移动数据:仍然产生相同的错误。如果我复制链接,我可以从浏览器下载上述 .tgz 文件。

标签: node.jsdockernpmbcrypt

解决方案


两天后此问题消失(同一网络,同一台计算机等)

这可能与评论所指出的有关。


推荐阅读