#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 досье. дайте мне знать, если вам нужно что-нибудь еще от меня, чтобы исправить это. Заранее благодарим вас за помощь!
Ответ №1:
Кажется, что-то не так с сетью docker, прокси или брандмауэром. это можно исправить, указав --network="host"
$ docker build -t myapp . --network="host"
бум, он начал работать как шарм!
Комментарии:
1. Интересно, что такая же проблема возникает на Ubuntu Server 20.04, но не на Ubuntu workstation. Это решение работало на моем сервере Ubuntu.
2. @tbalci Я рад, что это помогло вам, спасибо! вы также можете рассмотреть вопрос о повышении голоса!
3. Большое спасибо и извинения, Эрик. Это просто не приходило мне в голову. Я проголосовал за это 🙂