Docker 中的 ng build --prod 非常慢

2024-01-20

当我尝试在 docker 中构建 angular7 项目时,大约需要 40 分钟。需要40分钟的线路是

ng 构建 --prod

92% 块资产优化 TerserPlugin

我在同一台笔记本电脑上在 docker 外部运行了 ng build --prod ,需要 2 分钟。

我尝试添加 --build-optimizer false

和 --sourceMap=false

没有任何区别

这是我的 Dockerfile

FROM node:carbon
WORKDIR /usr/src/app
COPY package.json package-lock.json ./
RUN npm install
RUN npm install -g @angular/[email protected] /cdn-cgi/l/email-protection
COPY . .
RUN ng build --prod
EXPOSE 4200
CMD [ "npm", "start" ]
HEALTHCHECK --interval=5s --timeout=30s --retries=20 CMD curl --fail http://localhost:4200 || exit 1

这个构建速度极慢的问题是几乎总是与构建过程缺乏内存有关。

Node不会为单个进程分配大量内存(32位系统上为512MB,64位系统上为1GB),但运行时ng build生产设置会占用大量内存。

您可以使用节点参数max_old_space_size设置允许进程使用多少 RAM,但必须将参数直接传递给节点,因此替换

ng build --prod

with

node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng build --prod

它将为该进程分配高达 8GB 的​​ RAM,这将使其运行速度更快。

您还可以将其添加到 package.json 中的脚本中:

"scripts": {
  ....
  "build:prod": "node --max_old_space_size=4096 ./node_modules/@angular/cli/bin/ng build --prod"
 }

(如果增加内存限制不起作用,请尝试运行ng build --prod --verbose查看编译不同阶段的确切时间)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker 中的 ng build --prod 非常慢 的相关文章

随机推荐

  • Android Oracle 数据库 JDBC6

    您好 我想创建到我的 Oracle 数据库的连接 我以前使用过 ojdbc14 jar 一切正常 但连接应该是安全的 我想加密文件 所以我决定现在使用ojdbc5 jar 该罐子是我的 libs 文件夹 从 jdbc14 更改为 jdbc6
  • .sink 没有从未来发布者返回承诺值

    我在 lrvViewModel swift 中有这段代码 func getVerificationID phoneNumber String gt Future
  • 访问php中函数返回的数组

    我正在使用一个模板引擎 它可以将代码插入到我的网站中我想要的位置 我编写了一个函数来测试一些非常简单的东西 myfunction return this gt data a b true false 问题是 this gt data 是私有
  • 如何在phonegap中创建toast?

    如何使用phonegap cordova在android应用程序中创建toast Thanx 首先创建一个ToastPlugin java package com company plugins import org apache cord
  • 如果我从不对打开的文件流调用“close”会发生什么? [复制]

    这个问题在这里已经有答案了 以下是同一案例的代码 include
  • qmake 中的 debug_and_release 配置功能有什么优点?

    我只能看到未来的一个优点 我们能够发行make all commad 好吧 我不打电话make在我的开发人员生命中的任何阶段 我使用 Qt Creator 当我构建项目时 我希望它严格作为调试或发布 我想这是人们预期的行为 But debu
  • 使用 r 中的 gsub 删除模式

    我有一根绳子Project Change Request PCR HONDA DIGITAL PLATEFORM保存在supp matches and supp matches1包含字符串Project Change Request PCR
  • 我想将一个表中的行分配到另一个表中的行,这些行可以在 SQL oracle 中占用相同数量的行

    我正在尝试编写一个 SQL 查询 它将记录从一个表分配到另一个具有相同数量的表 在这个例子中我有两个表 Students and Teachers 我想将学生分配给每位老师 学生 亚当 班尼特 埃尔默 贾斯汀 路易斯 诺亚 杰克 老师 Le
  • 将照片保存到 iPhone 照片库中的自定义相册

    我正在尝试在 iPhone 的照片库中创建一个自定义相册 然后将我用相机拍摄的照片或从手机相机胶卷中选择的照片保存到该自定义相册中 我可以成功创建相册 但照片没有保存在那里 而是保存到模拟器的 已保存照片 相册中 我不知道如何判断UIIma
  • 后递增运算符在 for 循环中不递增[重复]

    这个问题在这里已经有答案了 我正在做一些关于 Java 的研究 发现这非常令人困惑 for int i 0 i lt 10 i i System err print hoo 这是永无休止的循环 有人有很好的解释为什么会发生这样的事情吗 fo
  • NoneType 错误 self.widget.insert

    我试图在我的应用程序中拥有一个输出框架 当我运行它时 我收到错误 NoneType object has no attribute insert on self widget insert end string 任何帮助 将不胜感激 imp
  • 将多个数据帧导出到 .csv 文件中

    我想使用循环将多个数据帧作为单独的 csv 文件导出到工作目录 而不是写出所有名称 Sample data frame employee lt c John Doe Peter Gynn Jolie Hope salary lt c 210
  • Git-跟踪远程分支

    我是 Mercurial 用户 我对远程分支的行为感到困惑 我有一个远程分支origin dev 我想在本地分支上复制它dev 我想要的是 每当我git pull 更改为origin dev被合并到dev 每当我git push 更改为de
  • clang 如何引导 C/C++ 代码优化?

    有人告诉我 clang 是一个像 gcc 一样工作的驱动程序 可以进行预处理 编译和链接工作 在编译和链接过程中 据我所知 实际上是llvm进行了优化 O1 O2 O3 Os flto 但我就是无法理解howllvm参与其中 看来编译源代码
  • jQuery 多个选择器,获取哪个选择器触发事件

    当处理具有多个选择器的事件时 例如 item a another item a click function e 是否可以确定哪个父选择器触发了该事件 是吗 item or another item 谢谢你 由于选择器可以是任何东西 因此您
  • 量角器 e2e 抛出 webdriver 未定义

    我的量角器一直在运行 直到几天前我开始遇到 Using the selenium server at http localhost 4444 wd hub UNCAUGHT EXCEPTION Error connect ECONNREFU
  • 在 Haskell 中动态构建列表理解

    我很好奇是否可以在 Haskell 中动态构建列表理解 举个例子 如果我有以下内容 all pows a a b b a y b z y lt take a 0 z lt take b 0 我得到了我所追求的 Main gt List so
  • hashCode 等于 Integer.MIN_VALUE 的 Java 字符串

    是否存在 hashCode 完全等于 Integer MIN VALUE 的已知 Java 字符串 为哈希表编写测试有助于避免在执行余数运算之前在哈希码上运行 Math Abs 的常见错误 理想情况下 该字符串仅包含 ASCII 字符 但我
  • 在mysql中,显示数据库;命令未列出我的所有数据库

    我可以使用 HeidiSQL 访问我的所有数据库 但是如果我转到 mysql exe 窗口并使用显示数据库 11 个中只有 2 个出现 这些都是 127 0 0 1 上的数据库 有什么想法吗 您正在登录 HeidiSQLroot 所以它向您
  • Docker 中的 ng build --prod 非常慢

    当我尝试在 docker 中构建 angular7 项目时 大约需要 40 分钟 需要40分钟的线路是 ng 构建 prod 92 块资产优化 TerserPlugin 我在同一台笔记本电脑上在 docker 外部运行了 ng build