docker 如何修复Google Cloud Build中的“npm ERR!超出最大调用堆栈大小”?

0sgqnhkj  于 2022-11-22  发布在  Docker
关注(0)|答案(2)|浏览(175)

我的最新Google Cloud Build失败,出现以下错误:

Step 3/16 : RUN npm i
 ---> Running in 9b3b8df05c12
npm notice 
npm notice New patch version of npm available! 7.0.2 -> 7.0.3
npm notice Changelog: <https://github.com/npm/cli/releases/tag/v7.0.3>
npm notice Run `npm install -g npm@7.0.3` to update!
npm notice 
npm ERR! Maximum call stack size exceeded

上一次成功的构建是在10月17日。从那以后,我只做了一次修改了一些 typescript 的提交。在dockerfile或NPM依赖项中没有任何改变。
Dockerfile的相关部分如下所示:

FROM node AS minifier
COPY MyProject/Client .
RUN npm i
RUN npm install -g grunt-cli rollup
RUN grunt release

看起来这个问题特别是RUN npm i命令。这是一个bug吗?我可以做些什么来修复它吗?我确实重试了构建,但是遇到了同样的错误。

33qvvth1

33qvvth11#

这是由最新的npm版本(即v7.0.3)引起的问题。有多种解决方法:

  • 您可以将基础映像更改为node:15.0.0node:15.0.0-slim
  • 或者使用yarn代替npm也可以解决此问题
  • 在Dockerfile中,先运行npm cache clean --force,再运行npm i

我建议更改基本映像。

5jdjgkvh

5jdjgkvh2#

在我的例子中,根本问题是到npm注册表的互联网连接速度慢。在我换到另一个npm注册表后,这个问题从未被触发过。

相关问题