在Docker上构建Node / NPM Angular映像时出错

时间:2020-11-01 01:26:59

标签: angular docker npm

我尝试了多种方法来解决此问题,但是它不起作用。 我有一个角度应用程序,我用以下代码创建了一个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,它正在运行。但是在更大的项目中...

1 个答案:

答案 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