构建容器在缓存node_modules时内存不足

问题描述 投票:0回答:1

我有一个使用 Amplify 构建的简单 React 应用程序,最近开始因“内存不足”错误而失败。

经过大量调试,并以稳定的时间间隔输出

free -h
,我看到的最后一个条目是1.8GB可用内存,然后它开始按照
amplify.yml
文件的指示缓存node_modules并立即死亡。 amplify.yml 文件是 AWS 默认自动生成的文件。看起来像这样

放大.yml

version: 1
frontend:
  phases:
    preBuild:
      commands:
        - yarn install
    build:
      commands:
        - yarn run build
  artifacts:
    baseDirectory: build
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*

我的假设是容器尝试将

node_modules
的全部内容加载到内存中,并将其保存在外部缓存中。当然,
node_modules
文件夹非常大(2.8GB),因此容器会快速消耗内存,我们会得到内存不足错误

禁用最后一部分(缓存

node_modules
)后一切正常,并且它永远不会低于 2GB 可用内存

问题

有什么办法可以缓存

node_modules
而不会让容器像这样耗尽内存吗?

reactjs caching out-of-memory node-modules aws-amplify
1个回答
0
投票

有时,当您的项目中存在重大差异时,可能需要清除缓存。要实现此目的,请启动运行,同时排除以下路径:

paths:
  - .next/cache/**/*
  - .next/node_modules/**/*

无论部署成功还是失败,都继续部署。随后,您可以尝试运行包含上述路径的项目。

© www.soinside.com 2019 - 2024. All rights reserved.