首页 > 解决方案 > Openshift Online 无法构建 Angular 应用程序,内存不足

问题描述

因此,我将在此添加前缀并说我的问题与此处的问题非常相似:Open Shift Angular 8 Application Out of Memory Issue

我想对旧问题添加评论,但我是一个新的 SO 用户,还没有足够的代表......

所以,我的问题是:我创建了一个 Openshift Online 免费帐户来做一些实验,并认为一个好的第一步是获得一个运行基本 Web 应用程序的简单容器。因此,我使用 OS Web 控制台创建了一个基于 Modern Web App 的目录选项的应用程序(因为我想尝试 S2I)。这是我指向我的 bitbucket 存储库并确保所有秘密都正确设置。一旦我可以在日志中正确地看到从 repo 中提取的构建,我认为它已排序;但是,我在日志中看到了这一点,并且所有构建都失败了:

...
> ng build


Compiling @angular/core : es2015 as esm2015

Compiling @angular/common : es2015 as esm2015

Compiling @angular/platform-browser : es2015 as esm2015

Compiling @angular/platform-browser-dynamic : es2015 as esm2015

Compiling @angular/router : es2015 as esm2015
Generating ES5 bundles for differential loading...
/usr/libexec/s2i/assemble: line 62:   291 Killed                  $NPM_BUILD
subprocess exited with status 137
subprocess exited with status 137
error: build error: error building at STEP "RUN /usr/libexec/s2i/assemble": exit status 137

我在 repo 中的所有内容都是来自下载最新版本的 Angular 9 并运行标准ng create-app命令。我不知道为什么它会占用这么多内存......

搜索了问题后,链接的问题是我发现的最接近的问题,任何其他建议来源似乎都建议进行相同的修复。现在我已将上述 Build Config 的内存限制增加到 1GB,但它仍然失败 - 它甚至没有通过编译阶段并之前生成包,所以它肯定改变了这种情况。我尝试进一步提高限制,但似乎 Openshift(或 OS Online 版本)对每个 pod 的内存有 1GB 的硬上限,老实说,虽然很高兴知道这是否能解决问题,但我会而是弄清楚为什么在我的机器上构建在 500MB 以下 RAM 中的东西突然吞噬了它在容器中可以找到的所有东西......

希望有人能帮忙,先谢谢了!

标签: angularopenshiftangular9

解决方案


我遇到了这个问题,并且找到了解决方法。你可以:

  • 在本地构建镜像
s2i build https://github.com/gorbunov-ia/Diaries-web.git -r master -e OUTPUT_DIR=dist/diaries nodeshift/ubi8-s2i-web-app:latest diaries-web
  • 添加泊坞窗标签
docker tag diaries-web default-route-openshift-image-registry.apps.ca-central-1.starter.openshift-online.com/diaries/diaries-web
  • 登录到 openshift 注册表
docker login default-route-openshift-image-registry.apps.ca-central-1.starter.openshift-online.com -u $(oc whoami) -p $(oc whoami -t)
  • 将图像推送到注册表
docker push default-route-openshift-image-registry.apps.ca-central-1.starter.openshift-online.com/diaries/diaries-web
  • 从图像创建应用程序

推荐阅读