Angular сборка для производства потребляет слишком много памяти? - PullRequest
0 голосов
/ 18 марта 2020

Я упаковал свое приложение Node.js / Angular, используя Docker, и настроил GitLab Runner для развертывания одним щелчком, чтобы развернуть изменения на работающем сервере.

docker-compose.yml:

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

Проблема в том, что когда сборка достигает этой части в Dockerfile:

ng build --prod

Всегда происходит сбой, и я получаю сообщение об ошибке памяти на сервере (1 ГБ ОЗУ).

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

Есть ли обходной путь, помимо создания файлов на моем локальном компьютере и их фиксации в хранилище, и просто копирования / вставки этих файлов?

Dockerfile для 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

ОБНОВЛЕНИЕ:

Я попытался использовать max_old_space_size, но сборка все равно не удалась, хотя на этот раз ошибка другая:

enter image description here

Перед использованием max_old_space_size сборка обычно уже происходит сбой сразу после Browserslist: caniuse-lite is outdated. Please run next command npm update, но здесь ей удалось обойти это.

...