Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

npm install returns connection timeout while building docker image

I am trying to make a docker image including newman. I tried to build the image using node:10-alpine, but I got connection refused error while npm install -g newman. This is my docker command:

RUN set http_proxy= && \
    set https_proxy= && \
    yarn config delete proxy && \
    npm config rm https-proxy && \
    npm config rm proxy && \
    npm config set registry http://registry.npmjs.org/ && \
    npm config set strict-ssl false && \
    npm cache clean --force && \
    npm cache verify && \
    npm install -g newman

The full error is:

npm ERR! code ECONNREFUSED
npm ERR! errno ECONNREFUSED
npm ERR! FetchError: request to https://registry.npmjs.org/newman failed, reason: connect ECONNREFUSED 192.168.14.109:1087
npm ERR!     at ClientRequest.req.on.err (/usr/local/lib/node_modules/npm/node_modules/node-fetch-npm/src/index.js:68:14)
npm ERR!     at ClientRequest.emit (events.js:198:13)
npm ERR!     at onerror (/usr/local/lib/node_modules/npm/node_modules/agent-base/index.js:101:9)
npm ERR!     at callbackError (/usr/local/lib/node_modules/npm/node_modules/agent-base/index.js:123:5)
npm ERR!     at process._tickCallback (internal/process/next_tick.js:68:7)
npm ERR!  { FetchError: request to https://registry.npmjs.org/newman failed, reason: connect ECONNREFUSED 192.168.14.109:1087
npm ERR!     at ClientRequest.req.on.err (/usr/local/lib/node_modules/npm/node_modules/node-fetch-npm/src/index.js:68:14)
npm ERR!     at ClientRequest.emit (events.js:198:13)
npm ERR!     at onerror (/usr/local/lib/node_modules/npm/node_modules/agent-base/index.js:101:9)
npm ERR!     at callbackError (/usr/local/lib/node_modules/npm/node_modules/agent-base/index.js:123:5)
npm ERR!     at process._tickCallback (internal/process/next_tick.js:68:7)
npm ERR!   message:
npm ERR!    'request to https://registry.npmjs.org/newman failed, reason: connect ECONNREFUSED 192.168.14.109:1087',
npm ERR!   type: 'system',
npm ERR!   errno: 'ECONNREFUSED',
npm ERR!   code: 'ECONNREFUSED',
npm ERR!   stack:
npm ERR!    'FetchError: request to https://registry.npmjs.org/newman failed, reason: connect ECONNREFUSED 192.168.14.109:1087\n    at ClientRequest.req.on.err (/usr/local/lib/node_modules/npm/node_modules/node-fetch-npm/src/index.js:68:14)\n    at ClientRequest.emit (events.js:198:13)\n    at onerror (/usr/local/lib/node_modules/npm/node_modules/agent-base/index.js:101:9)\n    at callbackError (/usr/local/lib/node_modules/npm/node_modules/agent-base/index.js:123:5)\n    at process._tickCallback (internal/process/next_tick.js:68:7)' }
npm ERR! 
npm ERR! If you are behind a proxy, please make sure that the
npm ERR! 'proxy' config is set properly.  See: 'npm help config'

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2020-03-02T14_57_46_444Z-debug.log

Then I tried to make my image from alpine:3.8 which gives me repository error while apk update. This is my second version:

RUN apk update && apk add --no-cache nodejs npm
RUN npm install -g newman

Full error log is:

Step 5/7 : RUN apk update && apk add --no-cache nodejs npm
 ---> Running in 6149b2571389
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.8/main: operation timed out
WARNING: Ignoring APKINDEX.adfa7ceb.tar.gz: No such file or directory
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.8/community: operation timed out
WARNING: Ignoring APKINDEX.efaa1f73.tar.gz: No such file or directory
2 errors; 13 distinct packages available
The command '/bin/sh -c apk update && apk add --no-cache nodejs npm' returned a non-zero code: 2

I also tried to build the image with --network=hostoption; but got the same errors in both versions.

Additionally ping dl-cdn.alpinelinux.org works fine on my system.

Besides, restarted the docker service, sudo systemctl restart docker, and tried one more time. Got the same results again.

like image 310
Zeinab Abbasimazar Avatar asked Nov 07 '22 09:11

Zeinab Abbasimazar


1 Answers

In my case works with this steps:

  1. In the Host, I change Host Server /etc/sysctl.conf:

I added

net.ipv4.ip_forward=1
  1. I use

    nslookup registry.npmjs.org

Give me the IP 104.16.25.38

  1. Docker Build with IP

docker build . --add-host registry.npmjs.org:104.16.25.38 -t test

like image 59
Hernaldo Gonzalez Avatar answered Nov 15 '22 06:11

Hernaldo Gonzalez