Убит при выполнении bundle exec rake themes:update assets:precompile

 [2024-02-05T07:05:17.407418 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
111:M 05 Feb 2024 07:05:31.061 * 100 изменений за 300 секунд. Сохранение...
111:M 05 Feb 2024 07:05:31.063 * Фоновое сохранение запущено процессом с pid 3496
3496:C 05 Feb 2024 07:05:31.222 * База данных сохранена на диск
3496:C 05 Feb 2024 07:05:31.223 * Fork CoW для RDB: текущее значение 1 МБ, пиковое 1 МБ, среднее 1 МБ
111:M 05 Feb 2024 07:05:31.263 * Фоновое сохранение завершено успешно
I, [2024-02-05T07:05:32.565285 #1]  INFO -- : gem install ruby-openid -v 2.9.2 -i /var/www/discourse/plugins/discourse-steam-login/gems/3.2.2 --no-document --ignore-dependencies --no-user-install
Успешно установлен ruby-openid-2.9.2
Установлен 1 gem
gem install rack-openid -v 1.3.1 -i /var/www/discourse/plugins/discourse-steam-login/gems/3.2.2 --no-document --ignore-dependencies --no-user-install
Успешно установлен rack-openid-1.3.1
Установлен 1 gem
gem install omniauth-openid -v 1.0.1 -i /var/www/discourse/plugins/discourse-steam-login/gems/3.2.2 --no-document --ignore-dependencies --no-user-install
Успешно установлен omniauth-openid-1.0.1
Установлен 1 gem
gem install omniauth-steam -v 1.0.6 -i /var/www/discourse/plugins/discourse-steam-login/gems/3.2.2 --no-document --ignore-dependencies --no-user-install
Успешно установлен omniauth-steam-1.0.6
Установлен 1 gem

I, [2024-02-05T07:05:32.565781 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile'
Убито
ошибка: команда завершилась с кодом выхода 137.
ОШИБКА
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile' завершилась с кодом возврата #<Process::Status: pid 3497 exit 137>
Место возникновения ошибки: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
Выполнение не удалось с параметрами {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
Загрузка не удалась с кодом выхода 137
** ЗАГРУЗКА НЕ УДАЛАСЬ ** Пожалуйста, прокрутите вверх и поищите более ранние сообщения об ошибках, их может быть несколько.
./discourse-doctor может помочь диагностировать проблему.
1901476353b23c1963cfaecc063b5cbf4c367bb3dce9b95c5bdb39faa7474682
==================== КОНЕЦ ЖУРНАЛА ПЕРЕСОЗДАНИЯ ====================
Не удалось пересоздать приложение.

мой app.yml:

## это шаблон контейнера Docker Discourse «всё в одном», автономный
##
## После внесения изменений в этот файл вы ОБЯЗАНЫ выполнить пересоздание
## /var/discourse/launcher rebuild app
##
## БУДЬТЕ *ОЧЕНЬ* ОСТОРОЖНЫ ПРИ РЕДАКТИРОВАНИИ!
## YAML-ФАЙЛЫ ЧРЕЗВЫЧАЙНО ЧУВСТВИТЕЛЬНЫ К ОШИБКАМ В ПРОБЕЛАХ ИЛИ ВЫРАВНИВАНИИ!
## посетите http://www.yamllint.com/, чтобы проверить этот файл при необходимости

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  ## Раскомментируйте следующую строку, чтобы включить прослушивание IPv6
  #- "templates/web.ipv6.template.yml"
  - "templates/web.ratelimited.template.yml"
  ## Раскомментируйте эти две строки, если хотите добавить Lets Encrypt (https)
  #- "templates/web.ssl.template.yml"
  #- "templates/web.letsencrypt.ssl.template.yml"

## какие TCP/IP-порты должен открывать этот контейнер?
## Если вы хотите, чтобы Discourse использовал один порт с другим веб-сервером, например Apache или nginx,
## см. https://meta.discourse.org/t/17247 для деталей
expose:
  - "8880:80"   # http
  - "4443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Установите db_shared_buffers максимум на 25% от общей памяти.
  ## будет установлено автоматически при загрузке на основе обнаруженной оперативной памяти, или вы можете переопределить
  db_shared_buffers: "1024MB"

  ## может улучшить производительность сортировки, но увеличивает использование памяти на подключение
  #db_work_mem: "40MB"

  ## Какую ревизию Git должен использовать этот контейнер? (по умолчанию: tests-passed)
  #version: tests-passed

env:
  LC_ALL: en_US.UTF-8
  LANG: en_US.UTF-8
  LANGUAGE: en_US.UTF-8
  NODE_OPTIONS: "--max-old-space-size=2048"
  # DISCOURSE_DEFAULT_LOCALE: en

  ## Сколько одновременных веб-запросов поддерживается? Зависит от памяти и ядер процессора.
  ## будет установлено автоматически при загрузке на основе обнаруженных процессоров, или вы можете переопределить
  UNICORN_WORKERS: 4

  ## TODO: Доменное имя, на которое будет отвечать этот экземпляр Discourse
  ## Обязательно. Discourse не будет работать с чистым IP-адресом.
  DISCOURSE_HOSTNAME: 'www.palworld.hk'

  ## Раскомментируйте, если хотите, чтобы контейнер запускался с тем же
  ## именем хоста (-h опция), что указано выше (по умолчанию "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Список email-адресов, разделенных запятыми, которые станут администраторами и разработчиками
  ## при первоначальной регистрации, например 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'paojiao@palworld.hk'

  ## TODO: SMTP-сервер для проверки новых учетных записей и отправки уведомлений
  ## SMTP-адрес, имя пользователя и пароль обязательны
  # ВНИМАНИЕ: символ '#' в пароле SMTP может вызвать проблемы!
  DISCOURSE_SMTP_ADDRESS: smtp.exmail.qq.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: noreply@palworld.hk
  DISCOURSE_SMTP_PASSWORD: BV6n8BBhpDaZ5DZQ
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (опционально, по умолчанию true)
  #DISCOURSE_SMTP_DOMAIN: discourse.example.com    # (требуется некоторыми провайдерами)
  DISCOURSE_NOTIFICATION_EMAIL: noreply@palworld.hk    # (адрес для отправки уведомлений)

  ## Если вы добавили шаблон Lets Encrypt, раскомментируйте ниже, чтобы получить бесплатный SSL-сертификат
  #LETSENCRYPT_ACCOUNT_EMAIL: me@example.com

  ## Адрес CDN http или https для этого экземпляра Discourse (настроен на извлечение)
  ## см. https://meta.discourse.org/t/14857 для деталей
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com
  
  ## Ключ лицензии MaxMind для поиска IP-адресов по геолокации
  ## см. https://meta.discourse.org/t/-/137387/23 для деталей
  DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456

## Контейнер Docker не имеет состояния; все данные хранятся в /shared
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## Плагины размещаются здесь
## см. https://meta.discourse.org/t/19157 для деталей
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-steam-login.git
          - git clone https://github.com/discourse/discourse-gamification.git
          - git clone https://github.com/whitewatercn/discourse-embed-bilibili.git
          - git clone https://github.com/communiteq/discourse-private-topics.git
          - git clone https://github.com/discourse/discourse-signup-banner.git
          - git clone https://github.com/discourse/discourse-adplugin.git
          - git clone https://github.com/discourse/discourse-whos-online.git
          - git clone https://github.com/discourse/discourse-topic-voting.git
          - git clone https://github.com/paviliondev/discourse-tickets.git

## Любые пользовательские команды для выполнения после сборки
run:
  - exec: echo "Начало пользовательских команд"
  ## Если вы хотите установить адрес электронной почты «От» для вашей первой регистрации, раскомментируйте и измените:
  ## После получения первого email регистрации закомментируйте строку обратно. Выполнять нужно только один раз.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "Конец пользовательских команд"

Я попробовал

egrep -i 'killed process' /var/log/messages

но ответа не последовало

Это ошибка «недостаточно памяти» (out of memory). В последнее время было несколько тем на эту тему. Возможно, вам потребуется обновить спецификации вашего сервера, однако перед внесением постоянных изменений можно попробовать несколько решений:

Эм, но конфигурация моего сервера — 4 ядра и 4 ГБ ОЗУ.

Сколько у вас подкачки?

Последние успехи: После удаления ранее установленной темы [Graceful] я успешно пересобрал её

Просто к сведению: в случае, если удаление этой темы не было критическим фактором, сообщалось о периодическом появлении ошибки 137. Иногда процесс может завершаться неудачей несколько раз подряд, но в следующий раз, даже без внесения изменений, может завершиться успешно.

Однако, если вы снова столкнётесь с этой проблемой, у вас уже будет представление о том, что можно сделать. :+1: