сбой сборки docker при установке npm, причина: сбой подключения ECONNREFUSED 104.16.17.35:443

#node.js #docker #ubuntu

#node.js #docker #ubuntu

Вопрос:

У меня возникла сложная проблема с запуском контейнера Docker, в консоли отображается какая-то странная ошибка, у меня нет никаких подсказок об этом, поскольку я новичок:

Dockerfile:

 FROM node:14

WORKDIR /usr/src/app/

COPY package.json package.json
COPY server.js server.js

RUN ping -c 4 google.com
RUN  npm config set registry https://registry.npmjs.com/
RUN echo "${http_proxy}" amp;amp; echo "${HTTP_PROXY}" 

RUN npm install
# COPY . .

EXPOSE 3000

CMD ['npm', 'start']
 

Когда я запускаю команду сборки docker

 $ docker build -t myapp .
 

Ошибка, которую я получаю:

 Sending build context to Docker daemon  947.7kB
Step 1/7 : FROM node:14
 ---> 7bef16bb2cf1
Step 2/7 : WORKDIR /usr/src/app/
 ---> Using cache
 ---> 90402606c386
Step 3/7 : COPY package.json ./
 ---> Using cache
 ---> b839b81ee876
Step 4/7 : RUN npm install
 ---> Running in 64378581f715
npm ERR! code ECONNREFUSED
npm ERR! errno ECONNREFUSED
npm ERR! FetchError: request to https://registry.npmjs.org/@slack/events-api failed, reason: connect ECONNREFUSED 104.16.18.35:443
npm ERR!     at ClientRequest.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/node-fetch-npm/src/index.js:68:14)
npm ERR!     at ClientRequest.emit (events.js:315:20)
npm ERR!     at TLSSocket.socketErrorListener (_http_client.js:469:9)
npm ERR!     at TLSSocket.emit (events.js:315:20)
npm ERR!     at emitErrorNT (internal/streams/destroy.js:106:8)
npm ERR!     at emitErrorCloseNT (internal/streams/destroy.js:74:3)
npm ERR!     at processTicksAndRejections (internal/process/task_queues.js:80:21)
npm ERR!  FetchError: request to https://registry.npmjs.org/@slack/events-api failed, reason: connect ECONNREFUSED 104.16.18.35:443
npm ERR!     at ClientRequest.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/node-fetch-npm/src/index.js:68:14)
npm ERR!     at ClientRequest.emit (events.js:315:20)
npm ERR!     at TLSSocket.socketErrorListener (_http_client.js:469:9)
npm ERR!     at TLSSocket.emit (events.js:315:20)
npm ERR!     at emitErrorNT (internal/streams/destroy.js:106:8)
npm ERR!     at emitErrorCloseNT (internal/streams/destroy.js:74:3)
npm ERR!     at processTicksAndRejections (internal/process/task_queues.js:80:21) {
npm ERR!   type: 'system',
npm ERR!   errno: 'ECONNREFUSED',
npm ERR!   code: 'ECONNREFUSED'
npm ERR! }
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/2021-03-02T08_20_08_546Z-debug.log
The command '/bin/sh -c npm install' returned a non-zero code: 1
 

Я на Ubuntu 20.4, и это всего лишь простое приложение для узлов с server.js досье. дайте мне знать, если вам нужно что-нибудь еще от меня, чтобы исправить это. Заранее благодарим вас за помощь!

https://i.stack.imgur.com/Nl7g1.png

Ответ №1:

Кажется, что-то не так с сетью docker, прокси или брандмауэром. это можно исправить, указав --network="host"

 $ docker build -t myapp . --network="host"
 

бум, он начал работать как шарм!

Комментарии:

1. Интересно, что такая же проблема возникает на Ubuntu Server 20.04, но не на Ubuntu workstation. Это решение работало на моем сервере Ubuntu.

2. @tbalci Я рад, что это помогло вам, спасибо! вы также можете рассмотреть вопрос о повышении голоса!

3. Большое спасибо и извинения, Эрик. Это просто не приходило мне в голову. Я проголосовал за это 🙂