node.js - 在 docker 容器中运行 npm install 时,Docker Node 服务返回 ECONNRESET 网络错误

标签 node.js docker npm

我使用 docker-compose 设置了一个简单的 Laravel 应用程序。

除了 Node 服务之外,一切正常。

当我运行docker-compose run --rm node npm install时在命令运行一段时间后,在项目文件夹中我收到以下错误 enter image description here

这也是我的 docker-compose.yml 文件

版本:“3.7”

服务: 应用程序: build : 参数: 用户: 戴尔 uid: 1000 语境: 。/ dockerfile: Dockerfile 图片:登陆应用程序 重新启动:除非停止 工作目录:/var/www/ 卷: - ./:/var/www 网络: - 着陆

nginx:
    image: nginx:alpine
    restart: unless-stopped
    ports:
    - 8000:80
    volumes:
    - ./:/var/www
    - ./docker-compose/nginx:/etc/nginx/conf.d/
    networks:
    - landing

node:
    image: node:15.5-alpine3.10
    working_dir: /assets
    volumes: 
        - ./:/assets
    command: "npm run watch" 

db:
    image: mysql:8
    restart: unless-stopped
    environment:
        MYSQL_DATABASE: ${DB_DATABASE}
        MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
        MYSQL_PASSWORD: ${DB_PASSWORD}
        MYSQL_USER: ${DB_USERNAME}
    networks:
        - landing

网络: 降落: 驱动程序:桥

最佳答案

仅供引用,在遇到同样的问题并查看了包括这个在内的数十篇帖子(其解决方案似乎非常复杂)后,有效的是一个简单的代理配置,传递给 npm 本身。 这在 docker 构建过程中修复了它。我所要做的就是在运行 npm install 命令之前将这些行添加到我的 Dockerfile 中:-

RUN npm config set http-proxy http://<my company proxy>:8099

RUN npm config set https-proxy http://<my company proxy>:8099

关于node.js - 在 docker 容器中运行 npm install 时,Docker Node 服务返回 ECONNRESET 网络错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65480866/

相关文章:

docker - 行动 : push: unauthorized to access repository docker harbor registry

python - 在 docker 和 Jenkins 中处理大型二进制文件 (3 GB)

node.js - 如何解决 npm 错误 "npm ERR! code ELIFECYCLE"

javascript - 在javascript中类型检查自定义对象

javascript - 我是否以正确的方式考虑回调?

docker - 在 Linux Alpine 上安装 DPDK 时出错

npm - 是否有较低版本的 materialize-css 的升级指南?

node.js - 在 OSX 10.9.4 上,node/npm 无法通过brew 安装

node.js - 使用 Node js 调用 ORCID 公共(public) api

javascript - 在 Bluebird 中返回被拒绝的 promise 和 onPossiblyUnhandledRejection 处理程序