我尝试了多种方法来解决此问题,但是它不起作用。 我有一个角度应用程序,我用以下代码创建了一个Dockerfile:
FROM node:latest AS ng-builder
RUN mkdir -p /app
WORKDIR /app
COPY package.json /app
RUN npm install
COPY . /app
RUN $(npm bin)/ng build --prod
FROM nginx
COPY nginx.conf /etc/nginx/nginx.conf
COPY --from=ng-builder /app/dist/sca-front /usr/share/nginx/html
EXPOSE 80
运行“ ng s”时,我的应用程序运行良好。但是,当我在Docker上创建映像时,它不起作用。我没有代理,没有VPN,互联网连接良好...
这些错误/警告显示:
npm notice
npm notice New patch version of npm available! 7.0.3 -> 7.0.7
npm notice Changelog: <https://github.com/npm/cli/releases/tag/v7.0.7>
npm notice Run `npm install -g npm@7.0.7` to update!
npm notice
npm ERR! code ERR_SOCKET_TIMEOUT
npm ERR! errno ERR_SOCKET_TIMEOUT
npm ERR! request to https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz failed, reason: Socket timeout
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2020-11-01T01_24_40_819Z-debug.log
由于角度版本,我尝试调用“ RUN npm RUN npm install -g npm@7.0.7”,但它看起来像是超时。我尝试更改docker上的npm版本...但是它不起作用。
我在一个新的/小型项目中尝试了dockerfile,它正在运行。但是在更大的项目中...
答案 0 :(得分:0)
尝试在Docker上为我的react应用创建容器时遇到类似的错误。
我使用node:14-apline
作为基础映像来解决它,并在安装软件包之前安装了npm@latest
。
注意:您可以决定安装npm@7
。
FROM node:14-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install npm@latest
RUN npm install
COPY . ./
CMD ["npm","run","start"]
https://github.com/npm/cli/issues/2031#issuecomment-715935308