Angular build for production consumes too much memory?

Discussão em 'Angular' iniciado por herondale, Dezembro 16, 2024.

  1. herondale

    herondale Guest

    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:

    [​IMG]

    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.

    Continue reading...

Compartilhe esta Página