Всем привет!
Это мой первый пост.
Я новый пользователь Discourse, перешедший с phpBB.
Две недели назад я установил Discourse в контейнере Docker с использованием Nginx, так как Apache по умолчанию использует порты 80 и 443. Я внимательно следовал инструкциям из руководств по установке и конфигурации Nginx для работы с несколькими сайтами.
**Мне удалось запустить и использовать форум в течение недели, периодически заходя в систему, чтобы ознакомиться с платформой. Когда я попросил одного из пользователей зарегистрироваться и протестировать форум, на следующий день он упал. В браузере появилось сообщение: «Программное обеспечение, обеспечивающее работу этого форума, столкнулось с неожиданной проблемой». Я не смог это исправить, поэтому полностью переустановил форум с нуля, а затем восстановил темы из последней доступной резервной копии. Это было в прошлый четверг. После всех этих действий форум снова заработал. Сейчас он снова недоступен из-за ошибки 502 Bad Gateway от Nginx. Я сразу же попытался запустить rebuild, но он снова упал с ошибкой:
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 580 exit 1>.
Это же происходило снова и снова на прошлой неделе, что привело меня к полной переустановке всего с нуля. Форум практически неактивен, так как я ещё не сделал его публичным. Мне страшно думать, что если он продолжает падать без активности, что произойдёт при работе с большей группой пользователей? Выполните следующие команды: ./launcher enter app
**cd /var/www/discourse**
**su discourse -c 'bundle exec rake db:migrate'**
**И в ответе я вижу следующее, что привлекло моё внимание:
connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: the database system is starting up**
Я попытался вручную перезапустить PostgreSQL и снова запустить rebuild, но процесс снова был прерван с сообщением об ошибке:
**FAILED**
**--------------------**
**Pups::ExecError: if [ -f /root/install_postgres ]; then**
**/root/install_postgres && rm -f /root/install_postgres**
**elif [ -e /shared/postgres_run/.s.PGSQL.5432 ]; then**
**socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1**
**fi**
** failed with return #<Process::Status: pid 18 exit 1>**
**Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'**
**exec failed with the params {"tag"=>"db", "cmd"=>"if [ -f /root/install_postgres ]; then\n /root/install_postgres && rm -f /root/install_postgres\nelif [ -e /shared/postgres_run/.s.PGSQL.5432 ]; then\n socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container exit ; 1\nfi\n"}**
**bootstrap failed with exit code 1**
Я не очень опытный пользователь, чтобы точно определить ошибку, но подозреваю, что PostgreSQL в какой-то момент сломается. Это заставило меня на прошлой неделе перезапустить всё и начать заново, но я не думаю, что это обычная или здоровая практика для кого-либо.
Discourse работает на сервере с 4 ядрами, 6 ГБ ОЗУ и 180 ГБ дискового пространства. В данный момент я запускаю только эту установку Discourse, поэтому, насколько я понимаю, я не ограничен аппаратными ресурсами.