Docker构建npm安装错误网络超时

Bru*_*ani 15 node.js docker

我尝试将映像构建到节点应用程序,但是当我执行 docker build 时显示运行 npm install 时出现错误

npm 错误!网络超时:https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz

关注 docker 文件内容:

FROM node:13

# Create app directory
WORKDIR /usr/src/app

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./

RUN npm install
# If you are building your code for production
# RUN npm ci --only=production

# Bundle app source
COPY . .

EXPOSE 8080
CMD [ "node", "server.js" ]
Run Code Online (Sandbox Code Playgroud)

关注我的 package.json

{
  "name": "backend",
  "version": "1.0.0",
  "description": "",
  "private": true,
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "Bruno Cassiamani",
  "license": "ISC",
  "dependencies": {
    "body-parser": "^1.19.0",
    "config": "^3.3.1",
    "consign": "^0.1.6",
    "cors": "^2.8.5",
    "express": "^4.17.1",
    "request": "^2.88.2",
    "xml2js": "^0.4.23"
  }
}
Run Code Online (Sandbox Code Playgroud)

操作系统版本:CentOS Linux 版本 8.1.1911(核心)

Docker 版本:Docker 版本 19.03.8,构建 afacb8b

打印错误: https: //i.stack.imgur.com/Q2l2B.png

Bru*_*ani 26

[已解决]问题出在docker网络中,然后我执行了以下命令:

docker build -t cassiamani/nodeapp --network=host .
Run Code Online (Sandbox Code Playgroud)

--network=host 使用主机的 dns,对我来说它有效。

参考: https: //www.linode.com/community/questions/19710/docker-npm-timeout-on-linode