Я пытаюсь установить Discourse на минимальный сервер с 2 ядрами CPU, 1 ГБ ОЗУ и 40 ГБ дискового пространства (я не ожидаю, что он будет сильно нагружен, и хочу сократить расходы).
Раньше мне удавалось устанавливать Discourse на подобный сервер, но сегодня я получаю следующие ошибки — я поискал на форуме, но не нашел никого, кто сообщал бы о подобном:
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
...
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
Я запустил discourse-doctor, как рекомендовал скрипт; он обнаружил, что Discourse не запущен, и начал пересборку, но результат тот же:
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile' failed with return #<Process::Status: pid 1117 exit 1>
Location of failure: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
553da25c117d42161ef95845c6876a32810feaa4b5e651ac8118981884933982
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
==================== END REBUILD LOG ====================
Failed to rebuild app.
+1 Та же проблема при запуске недавнего обновления (docker-manager успешно обновился, это было обновление Discourse с версии v2.8.0.beta11 до v2.9.0.beta1.
Мой последний пересборка также завершилась неудачей на droplet DigitalOcean объемом 1 ГБ. Думаю, мне нужно временно (?) увеличить объем до 2 ГБ, но я выполнил ./launcher restart app и перезапустил предыдущую версию до пересборки, пока обдумываю ситуацию. Не уверен, поможет ли это?
root@test:/var/discourse# free -h
total used free shared buff/cache available
Mem: 976Mi 753Mi 80Mi 29Mi 142Mi 64Mi
Swap: 2.0Gi 131Mi 1.9Gi
Я использую экземпляр e2-micro gCloud instance (тип машины Micro с 0,25 vCPU и 1 ГБ памяти, работающий на общем физическом ядре)
обновление: Если кому-то интересно, зачем я вообще это делаю: трафик от поисковых роботов у нас больше, чем от пользователей, и мы стараемся предоставить больше точек контакта для семей и выживших после инсульта у детей. Никто не замечает, что при первой загрузке или сохранении всё работает немного медленно, поэтому ценность, предоставляемая бесплатным уровнем Google Cloud, оказывается полезной.