angular - 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 中的东西突然吞噬了它在容器中可以找到的所有东西......
希望有人能帮忙,先谢谢了!
解决方案
我遇到了这个问题,并且找到了解决方法。你可以:
- 在本地构建镜像
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
- 从图像创建应用程序
推荐阅读
- gtk - 在树莓派上使用 gtk
- python - How to print '\n' in argv in python
- r - 如何重新编码我的折线图并突出显示日期
- tensorflow - Tensorflow NN:自定义损失和准确性工作,MSE 返回 NaN
- javascript - Laravel:从本地存储中获取 id
- java - 使用 Apache Curator 的分布式锁与 Redis 中的写入保持一致
- proxy - 碘非常慢
- ios - 尝试为自定义 AlertControlView 设置委托
- sql - 在 SQL 查询中拆分行中多列的逗号分隔值
- git - Git lfs 跟踪所有文件