You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker构建镜像时yarn安装依赖遇getaddrinfo EAI_AGAIN错误求助

Docker构建镜像时yarn install网络错误解决方案

问题分析

错误getaddrinfo EAI_AGAIN registry.yarnpkg.com是容器构建阶段DNS解析失败,无法访问npm仓库域名导致的,常见于Docker网络配置异常或镜像源问题。

解决方案

1. 调整Docker Desktop网络DNS设置

  • 打开Docker Desktop,进入 Settings → Resources → Network
  • 勾选"Enable DNS server",并手动设置DNS服务器为8.8.8.8(谷歌公共DNS)或114.114.114.114(国内公共DNS)
  • 点击"Apply & Restart"重启Docker Desktop

2. 优化Dockerfile配置(更换国内源)

修改Dockerfile,更换Alpine系统源和npm镜像源,同时优化构建缓存:

# syntax=docker/dockerfile:1
FROM node:18-alpine
# 替换Alpine国内源,解决系统包下载问题
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
WORKDIR /app
# 优先复制依赖配置文件,利用Docker构建缓存
COPY package.json yarn.lock ./
# 设置国内npm镜像源(npmmirror为淘宝镜像新域名)
RUN yarn config set registry https://registry.npmmirror.com/ && yarn install --production
# 最后复制项目代码
COPY . .
CMD ["node", "src/index.js"]
EXPOSE 3000

3. 验证容器网络连通性

执行以下命令启动临时容器,测试DNS和网络连通性:

docker run -it --rm alpine ping registry.npmmirror.com
  • 如果ping不通,说明Docker网络配置仍有问题,回到步骤1重新调整DNS
  • 如果能正常ping通,再执行docker build -t getting-started .重新构建镜像

4. 检查Windows代理设置

  • 若Windows开启了代理,进入Docker Desktop Settings → Resources → Proxies
  • 选择"Use system proxy"同步系统代理设置,或手动填写代理信息;若无需代理,直接选择"No proxy"
  • 重启Docker后重新构建

内容的提问来源于stack exchange,提问作者Sun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 11:15:38