首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用getaddrinfo EAI_AGAIN registry.npmjs.org编写抛出错误

使用getaddrinfo EAI_AGAIN registry.npmjs.org编写抛出错误
EN

Stack Overflow用户
提问于 2021-06-13 10:39:08
回答 2查看 2.3K关注 0票数 3

背景:

我在Ubuntu 20.04。我正试着用码头构图来建立图像。

这是我的docker-compose文件

代码语言:javascript
运行
复制
version: "3.8"

services:     
    web:
        build: ./frontend
        network_mode: "host"
        ports: 
            - 3000:3000
    api:
        build: ./backend
        network_mode: "host"
        ports: 
            - 3001:3001
        environment: 
            DB_URL: mongodb://db/foo-app
    db:
        image: mongo:4.0-xenial
        ports: 
            - 27017:27017
        volumes:
            - foo-app-data:/data/db

volumes:
    foo-app-data: 

下面是我的两个Dockerfile文件:

代码语言:javascript
运行
复制
# ./backend file

FROM node:16.3.0-alpine3.13

RUN addgroup app && adduser -S -G app app
WORKDIR /app

USER root
COPY package*.json ./

# --- debug try
RUN npm cache clean --force
RUN npm config set registry https://registry.npmjs.org/
RUN npm install -g @angular/cli
# ---

RUN npm install
COPY . . 
RUN chown app:app /app
USER app

EXPOSE 3001 

CMD ["npm", "start"]
代码语言:javascript
运行
复制
# ./frontend file

FROM node:16.3.0-alpine3.13

RUN addgroup app && adduser -S -G app app
WORKDIR /app

USER root
COPY package*.json ./

# --- debug try
RUN npm cache clean --force
RUN npm config set registry https://registry.npmjs.org/
# ---

RUN npm install
COPY . .
RUN chown app:app /app
USER app

EXPOSE 3000 

CMD ["npm", "start"]

错误:

当我运行docker-compose build时,会引发以下错误:

代码语言:javascript
运行
复制
Step 8/14 : RUN npm install -g @angular/cli
 ---> Running in ce221adb18f6
npm ERR! code EAI_AGAIN
npm ERR! syscall getaddrinfo
npm ERR! errno EAI_AGAIN
npm ERR! request to https://registry.npmjs.org/@angular%2fcli failed, reason: getaddrinfo EAI_AGAIN registry.npmjs.org

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2021-06-13T10_19_13_600Z-debug.log
The command '/bin/sh -c npm install -g @angular/cli' returned a non-zero code: 1
ERROR: Service 'web' failed to build : Build failed

到目前为止,我已经尝试过:

当我手动构建每个docker文件时,我会得到相同的错误,直到我使用了--network=host。这意味着,当我用docker build --network=host构建映像时,它工作得很好。因此,我尝试将network_mode= "host"添加到我的坞-撰写文件中,但它并没有解决这个问题。

看在上帝的份上,在把这个问题标记为重复的之前读了这篇文章

  1. 本篇文章here提出了一种对接而非对接组合的解决方案。当我ping registry.npmjs.org时,连接工作正常。
  2. 这个帖子here建议docker-compose up,它会抛出与这里完全相同的错误。
  3. --这个帖子here不工作,我已经多次重新启动了docker。最重要的是,在抛出错误后,我会清除所有的停靠映像,以确保下次构建时不会从缓存中使用任何东西。
  4. --这个post here也不能工作。我试图(1)从npm配置中删除代理,并在我的Dockerfile中添加附加行npm cache clean --forcenpm config set registry https://registry.npmjs.org/。这篇文章不仅不能解决这个问题,而且也不能很好地解释为什么这个解决方案是proposed.
  5. and这个帖子here我甚至不知道这个答案是如何在StackOverflow.

上被允许的

EN

回答 2

Stack Overflow用户

发布于 2021-07-07 19:29:46

如果使用network_mode主机值,则不能将其与端口映射混合起来:https://docs.docker.com/compose/compose-file/compose-file-v3/#ports

然后,或者将network_mode更改为桥接,或者删除每个服务的端口映射。

票数 0
EN

Stack Overflow用户

发布于 2022-04-09 18:11:28

将以下变量添加到mac中的.zshrc文件中

代码语言:javascript
运行
复制
export NODE_OPTIONS=--openssl-legacy-provider
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67957292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档