运行ng build in docker时,如何为node.js分配更多内存?

运行ng build in docker时,如何为node.js分配更多内存?,node.js,angular,docker,docker-compose,Node.js,Angular,Docker,Docker Compose,由于angular cli应用程序的内存需求不断增加,我在ng build--prod期间开始遇到节点崩溃。我见过这样的解决方案: 但是,我不确定如何在docker中配置此更改 Dockerfile FROM node:11.6.0-alpine AS builder COPY . ./visualizationadmin-ng WORKDIR /visualizationadmin-ng RUN npm i RUN $(npm bin)/ng build --aot --prod FROM

由于angular cli应用程序的内存需求不断增加,我在ng build--prod期间开始遇到节点崩溃。我见过这样的解决方案:

但是,我不确定如何在docker中配置此更改

Dockerfile

FROM node:11.6.0-alpine AS builder
COPY . ./visualizationadmin-ng
WORKDIR /visualizationadmin-ng
RUN npm i
RUN $(npm bin)/ng build --aot --prod

FROM nginx:1.15.8-alpine
RUN chmod g+rwx /var/cache/nginx /var/run /var/log/nginx
COPY --from=builder /visualizationadmin-ng/dist/visualizationadmin-ng/ /usr/share/nginx/html
COPY ./nginx/nginx.conf /etc/nginx/nginx.conf

# OpenShift port
EXPOSE 8080
Docker compose

version: '2.3'

services:
  angular:
    hostname: localhost
    container_name: visualizationadmin-ng
    build: .
    ports:
      - 8080:80
    environment:
      NODE_OPTIONS: ${NODE_OPTIONS}
.env文件

NODE_OPTIONS=--max-old-space-size=4096 ng bundle
当我运行docker compose时,我会得到以下错误日志

[1:0x563fd8b258c0]259664毫秒:标记扫描1174.6(1443.6)->1162.0(1447.6)MB,1332.2/0.0毫秒(平均mu=0.206,当前mu=0.112)分配失败清除可能无法成功 [1:0x563fd8b258c0]260886毫秒:标记扫描1177.1(1447.6)->1161.6(1448.1)MB,1170.0/0.0毫秒(平均mu=0.133,当前mu=0.042)分配失败清除可能无法成功

<--- JS stacktrace --->

==== JS stack trace =========================================

    0: ExitFrame [pc: 0x16812784fb5d]
Security context: 0x2ae71059d921 <JSObject>
    1: yn(aka yn) [0x7a102207399] [/visualizationadmin-ng/node_modules/terser/dist/bundle.min.js:~1] [pc=0x16812b2f9406](this=0x29a3dc8025b1 <undefined>,0x29a3dc8025b1 <undefined>)
    2: /* anonymous */ [0x7a102203919] [/visualizationadmin-ng/node_modules/terser/dist/bundle.min.js:~1] [pc=0x16812b1b0471](this=0x128f61ced9d9 <AST_SymbolRef map = 0x3eb1d6dae2...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
ERROR: Service 'angular' failed to build: The command '/bin/sh -c $(npm bin)/ng build --aot --prod' returned a non-zero code: 139

==JS堆栈跟踪=========================================
0:ExitFrame[pc:0x16812784fb5d]
安全上下文:0x2ae71059d921
1:yn(又称yn)[0x7a102207399][/visualizationadmin ng/node_modules/terser/dist/bundle.min.js:~1][pc=0x16812b2f9406](this=0x29a3dc8025b1,0x29a3dc8025b1)

2://*anonymous*/[0x7a102203919][visualizationadmin ng/node_modules/terser/dist/bundle.min.js:~1][pc=0x16812b1b0471](this=0x128f61ced9d9

您可能需要检查正在运行构建的代理。我不清楚您所说的代理是什么意思。我正在docker desktop中运行此代理,并添加了设置。我应该具体检查什么来解决此问题?您已经显示了配置对话框的屏幕截图,当您将内存增加到某个值时会发生什么情况像10G一样运行?您可能需要检查正在运行构建的代理。我不清楚您所说的代理是什么意思。我在docker desktop中运行此代理,并添加了设置。我应该具体检查什么来解决此问题?您已经显示了配置对话框的屏幕截图,当您将内存增加到10G时会发生什么?