Это выглядит не как проблема pnpm или Ember, а скорее как нехватка памяти на хосте.
Ключевой момент — сигнал SIGKILL. Обычно это означает, что в дело вмешалась операционная система и убила процесс (часто через механизм OOM killer), а не то, что ember build -prod завершился с ошибкой самостоятельно.
На небольших хостах процесс сборки Ember в продакшн-режиме может легко потреблять несколько гигабайт оперативной памяти. Даже если включен файл подкачки (swap), когда он почти полностью заполнен, ядро всё ещё может решить убить процесс node, который активно расходует память.
Несколько фактов, указывающих на это:
- На момент сбоя файл подкачки уже сильно загружен.
- Сбой гораздо чаще происходит, когда одновременно запущен другой контейнер.
- Если остановить другой контейнер перед запуском bootstrap, точно такая же сборка завершится успешно.
Таким образом, swap лишь немного помогает, но в основном просто откладывает проблему. Остановка других контейнеров снижает нагрузку на память настолько, что сборка успевает завершиться.
Что помогло / может помочь:
- Избегайте параллельного запуска нескольких процессов bootstrap или сборки ассетов.
- Останавливайте другие контейнеры во время выполнения
ember build -prod. - Ограничьте использование памяти Node (например, через
NODE_OPTIONS=--max_old_space_size=1024), чтобы снизить пиковое потребление. - Если возможно, увеличение оперативной памяти хоста (4 ГБ и более) сделает процесс гораздо более стабильным.
Надеюсь, это поможет объяснить, почему сбои кажутся случайными, и почему остановка другого контейнера решает проблему.