Angular build for production consumes too much memory?

Viewed 4301

I packaged my Node.js/Angular app using Docker, and I setup a GitLab Runner for one-click deployment to deploy the changes to the live server.

docker-compose.yml:

version: "3"
services:
    client:
        build: 
           context: ...
           dockerfile: ...
           ...
    server:
        build:
           context: ...
           dockerfile: ...
           ...

Problem is, when the build reaches this part in the Dockerfile:

ng build --prod

It always fails, and I get an out of memory error on the server (1GB of RAM).

"build-prod": "ng build --prod --aot=true --buildOptimizer=true",

Is there a workaround, aside from building the files on my local machine and committing them to the repository, and just copy/pasting those files?

Dockerfile for client:

# STAGE 1 - Build app

FROM node:12-alpine as client

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

RUN npm run build-prod

#STAGE 2: Run NGINX

FROM nginx

COPY --from=client /app/dist/* /var/www/html

COPY default.conf /etc/nginx/conf.d/default.conf

EXPOSE 80

UPDATE:

I tried the suggestion to use max_old_space_size, but the build still fails, although the error is different this time:

enter image description here

Before using max_old_space_size, the build usually already fails right after Browserslist: caniuse-lite is outdated. Please run next command npm update, but here, it managed to get past that.

0 Answers
Related