node.js - 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 文件。
解决方案
两天后此问题消失(同一网络,同一台计算机等)
这可能与评论所指出的有关。
推荐阅读
- javascript - 使用箭头键在另一个 div 中移动一个 div
- vba - VBA Outlook Mail Body
- bash - bash/ksh 脚本中的命令调用
- google-chrome - 页面和扩展之间的通信
- mysql - MYSQL:用相同的字段左连接同一张表两次
- java - Java中哪个类实现了抽象类EnumSet?
- splunk - Splunk:获取字符串的所有出现次数?
- python - 如何在 2 类 100 个样本上训练 CNN 模型,然后在 200 个新样本上进行测试?
- css - css类动态
- ios - 为 DismissViewController 添加通知而不进行子类化