Эмм, нет. У меня 18 ТБ свободного места… LOL.
Хорошо. Я использовал:
./launcher rebuild app
Я всё ещё вижу:
I, [2022-04-29T16:46:00.618865 #1] INFO -- : > cd /var/www/discourse && [ ! -d 'node_modules' ] || su discourse -c 'yarn install --production && yarn cache clean'
warning Skipping preferred cache folder "/home/discourse/.cache/yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/tmp/.yarn-cache-1000".
warning Cannot find a suitable global folder. Tried these: "/usr/local, /home/discourse/.yarn"
warning Skipping preferred cache folder "/home/discourse/.cache/yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/tmp/.yarn-cache-1000".
warning Cannot find a suitable global folder. Tried these: "/usr/local, /home/discourse/.yarn"
warning Skipping preferred cache folder "/home/discourse/.cache/yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/tmp/.yarn-cache-1000".
и завершается это так:
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile' failed with return #<Process::Status: pid 720 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'"]}
bootstrap failed with exit code 1
** 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.
29d02d2c0c6e0dde4f6d7b625db30c7b69626a80ec8100a44e8caf88565d1c7e
Я получаю следующую ошибку, хотя /home/discourse имеет права 777. В чём дело???
warning Skipping preferred cache folder "/home/discourse/.cache/yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/tmp/.yarn-cache-1000".
warning Cannot find a suitable global folder. Tried these: "/usr/local, /home/discourse/.yarn"
node:fs:1336
handleErrorFromBinding(ctx);
^
Error: EACCES: permission denied, mkdir '/home/discourse/.config/configstore'
You don't have access to this file.
Также я вижу следующие ошибки, и снова /home/discourse имеет права 777, но даже это не даёт доступа. Как должны быть установлены права владения и доступа? Пользователь discourse существует только внутри контейнера.
I, [2022-04-29T16:45:47.705749 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test development'
[DEPRECATED] The `--deployment` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set --local deployment 'true'`, and stop using this flag
[DEPRECATED] The `--without` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set --local without 'test development'`, and stop using this flag
`/home/discourse` is not writable.
Единственная другая ошибка, которую я вижу вообще, связана с портом 6379. Не упустил ли я что-то в плане открытия портов?
130:M 29 Apr 2022 16:45:10.722 # Warning: Could not create server TCP listening socket *:6379: bind: Address already in use
130:M 29 Apr 2022 16:45:10.722 # Failed listening on port 6379 (TCP), aborting.
Updating files: 100% (31051/31051), done.
После этого я запустил discourse-doctor, так как форум был остановлен. Несмотря на то, что написано ниже, форум снова запущен:
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile' failed with return #<Process::Status: pid 722 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'"]}
bootstrap failed with exit code 1
** 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.
922dd1e5bd9c3ec682864fff915eb2c12f4bf88805d555bc78f067ac2910540a
==================== END REBUILD LOG ====================
Failed to rebuild app.
Checking your domain name . . .
Connection to discussion.scottibyte.com succeeded.
You should probably remove any non-official plugins and rebuild.
Attempting to restart existing container. . .
x86_64 arch detected.
starting up existing container
+ /usr/bin/docker start app
app
ce202d9cd2ce local_discourse/app "/sbin/boot" 12 days ago Up Less than a second 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp app
Restarted the container.
==================== PLUGINS ====================
- git clone https://github.com/discourse/docker_manager.git
No non-official plugins detected.
See https://github.com/discourse/discourse/blob/main/lib/plugin/metadata.rb for the official list.
Утилита discourse-doctor обнаружила следующие ошибки:
d.indkey, pg_get_indexdef(d.indexrelid), t.oid,
pg_catalog.obj_description(i.oid, 'pg_class') AS comment
FROM pg_class t
INNER JOIN pg_index d ON t.oid = d.indrelid
INNER JOIN pg_class i ON d.indexrelid = i.oid
LEFT JOIN pg_namespace n ON n.oid = i.relnamespace
WHERE i.relkind IN ('i', 'I')
AND d.indisprimary = 'f'
AND t.relname = 'user_search_data'
AND n.nspname = ANY (current_schemas(false))
ORDER BY i.relname
2022-04-29 16:59:55.223 UTC [720] discourse@discourse LOG: duration: 174.472 ms execute <unnamed>: INSERT INTO "user_search_data" ("raw_data","user_id","locale","version","search_data") VALUES ('system system', -1, 'en', 3, '''system'':1A,2B ') ON CONFLICT ("user_id") DO UPDATE SET "raw_data"=excluded."raw_data","locale"=excluded."locale","version"=excluded."version","search_data"=excluded."search_data" RETURNING "user_id"
I, [2022-04-29T16:59:55.668214 #1] INFO -- :
I, [2022-04-29T16:59:55.668479 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile'
warning Skipping preferred cache folder "/home/discourse/.cache/yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/tmp/.yarn-cache-1000".
warning Cannot find a suitable global folder. Tried these: "/usr/local, /home/discourse/.yarn"
node:fs:1336
handleErrorFromBinding(ctx);
^
Error: EACCES: permission denied, mkdir '/home/discourse/.config/configstore'
You don't have access to this file.
at Object.mkdirSync (node:fs:1336:3)
at AsyncFunction.module.exports.sync (/var/www/discourse/app/assets/javascripts/node_modules/make-dir/index.js:114:6)
at Configstore.set all [as all] (/var/www/discourse/app/assets/javascripts/node_modules/configstore/index.js:59:12)
at Configstore.set (/var/www/discourse/app/assets/javascripts/node_modules/configstore/index.js:91:12)
at clientId (/var/www/discourse/app/assets/javascripts/node_modules/ember-cli/lib/cli/index.js:55:17)
at module.exports (/var/www/discourse/app/assets/javascripts/node_modules/ember-cli/lib/cli/index.js:105:13)
at Object.<anonymous> (/var/www/discourse/app/assets/javascripts/node_modules/ember-cli/bin/ember:34:1)
at Module._compile (node:internal/modules/cjs/loader:1103:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1157:10)
at Module.load (node:internal/modules/cjs/loader:981:32) {
errno: -13,
syscall: 'mkdir',
code: 'EACCES',
path: '/home/discourse/.config/configstore'
}
error Command failed with exit code 1.
Итак, после запуска discourse-doctor форум снова в строю, но с теми же самыми ошибками, которые я изначально опубликовал. Графика обязательна, поэтому я думаю, что в этой версии графика больше не работает. Эта ошибка появилась в версии 2.9.0 beta3, а сейчас я нахожусь на 2.9.0 beta4. Есть ли способ откатиться назад или исправить этот хаос?
@JammyDodger Всё сводится к следующему:
$ yarn install --production
Ошибка: EACCES: доступ запрещён, файл '/home/discourse/.config/yarn'
Обратите внимание, что в /home/discourse нет папки .config. Поэтому я создал .config.
Причина, по которой ваш форум снова становится доступным после работы Discourse-Doctor, заключается в том, что он перезапускает существующую, предварительно обновлённую версию сайта. Таким образом, вы снова будете онлайн, но, к сожалению, вернётесь к исходной точке.
Если у вас есть недавняя резервная копия, возможно, быстрее будет запустить новый droplet с чистой установкой и восстановить сайт там?
Я поискал на сайте похожие ошибки, так как боюсь, что у меня нет личного опыта работы с ними, но я не до конца понял ответы, чтобы дать по ним совет.
@pfaffman обычно хорошо разбирается в таких вопросах. Помогло бы что-то вроде этого, или это полный обман?
Итак, в последнюю попытку я выполнил резервное копирование через административный интерфейс. В логе было указано, что резервное копирование прошло успешно. Я попытался загрузить резервную копию. Форум отправил мне письмо со ссылкой на резервную копию. Я нажал на неё, и казалось, что загрузка началась, но файл так и не появился. В моём форуме отображаются резервные копии, но ни одна из них не загружается. Я подумал, что в худшем случае установлю Discourse с нуля и загрузлю резервную копию. К сожалению, я не могу загрузить резервные копии с текущего форума, а в логе нет ошибок. Этот продукт заставляет меня чувствовать себя полным новичком, хотя я им не являюсь.
Я выполнил команду chown внутри контейнера, как вы указали. Я получил письмо со ссылкой на резервную копию. Я нажал на неё. Указал папку для загрузки на своём рабочем столе Ubuntu. Ссылка открывается мгновенно, но ничего не загружается. Я дошёл до того, что готов потерять последние два года заметок форума и удалить свой канал на YouTube. Этот продукт сопротивляется любым попыткам ремонта, резервного копирования или восстановления.
Думаю, вам стоит воздержаться от любых более рискованных изменений, пока кто-то с большим опытом не сможет дать конкретные рекомендации. Я понимаю, что это действительно раздражает, но поспешные действия могут привести к сожалениям.
У меня есть несколько надёжных образов сервера, которые я могу восстановить в любой момент. Проблема в том, что мне нужны текущие данные с сервера, а Discourse не предоставляет копию созданной им резервной копии. Я не знаю, как поступить дальше. Я рассматриваю вариант просто сделать скриншоты всех изображений, скопировать текст и воссоздать всё заново в phpBB, который работает корректно.
Итак, моя проблема не в загрузке резервной копии, а в её скачивании с форума. Чтобы попытаться исправить проблему с лаунчером, я изменил владельца директории /home/discourse внутри контейнера на пользователя discourse, так как там был root. Я снова запустил лаунчер и…
warning Skipping preferred cache folder "/home/discourse/.cache/yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/tmp/.yarn-cache-1000".
warning Cannot find a suitable global folder. Tried these: "/usr/local, /home/discourse/.yarn"
warning Skipping preferred cache folder "/home/discourse/.cache/yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/tmp/.yarn-cache-1000".
Этот продукт изобилует сотнями ошибок, и исправление одной или двух не даёт никаких улучшений. Две недели назад всё работало нормально, а потом система сама себя уничтожила, и мне некуда обратиться, чтобы исправить этот хаос.
Ну, это уже кое-что.
Главное, чтобы вы чувствовали себя комфортно с такой страховкой и осознавали риски, связанные с экспериментами. Я тоже размещаю сервер самостоятельно, и это может быть довольно нервным, когда вы отклоняетесь от стандартного сценария без каких-либо указаний, особенно если у вас есть контент, который вам важен.
Не могли бы вы рассказать подробнее о вашей конфигурации и о том, как вы поддерживали свой сервер до сих пор? Возможно, это прольёт свет на то, как всё произошло, и кто-то из сообщества, кто сталкивался с подобной проблемой, узнает в этом свою ситуацию. Какой у вас сервер и какие у него характеристики? Вы упомянули, что следовали стандартному руководству по установке, но были не уверены в некоторых стандартных командах. Не пропустили ли вы важное обновление сервера или что-то ещё?
Вместо загрузки через веб-интерфейс вы можете использовать scp или rsync для копирования файлов в другое место.
Я не могу понять, что здесь происходит.
Путь /home/discourse, упомянутый в обновлении интерфейса, находится внутри контейнера, поэтому вы не должны видеть эти файлы в вашей локальной файловой системе.
Но вы, надеюсь, понимаете разницу между содержимым внутри контейнера и вне его.
Это ничего не изменит при пересборке, так как вы работаете не с этим контейнером.
Вы выполнили
git pull?
Вы находитесь на ветке main, а не на ветке master?
Отлично. Огромный прогресс, @JammyDodger. Спасибо за вашу помощь. Я восстановил резервную копию моего сервера Discourse от января. Всё запустилось идеально, затем я обновил его до последней версии с помощью команды “git pull” и пересобрал приложение. Хорошая новость: ошибок теперь ноль.
Мне наконец удалось экспортировать резервную копию со старого сервера и импортировать её. Все мои данные находятся на форуме, и ошибок на форуме нет.
К сожалению, я всё ещё не могу редактировать никакие сообщения с графикой или создавать новые сообщения с графикой. Я получаю ошибки 500 или просто сообщение «не удалось создать сообщение». Не стесняйтесь проверить это на https://discussion.scottibyte.com/. Хорошая новость в том, что пока мои сообщения содержат только текст, всё работает отлично. Я обновлён до последней версии, и ошибок нет.
Мне кажется, что моя проблема связана с невозможностью доступа Discourse к кэшу загружаемых изображений как при создании поста с изображениями, так и при редактировании существующего поста с изображениями. Я также полностью обновился до версии 2.9.0.beta4. В beta1 этой проблемы не наблюдалось. Думаю, она возникла либо в beta3, либо в beta4. При редактировании существующего поста с изображениями я получаю ошибку 500 при попытке сохранить изменения. При создании нового поста с изображениями я получаю:
Если же я редактирую или создаю пост с текстом и гиперссылками без встроенной графики, всё работает нормально.
Привет, @vmsman ![]()
Пожалуйста, размещайте сообщения по одной проблеме в одной теме, а не создавайте несколько дублирующих тем. Если кто-то сможет помочь, у него будет вся необходимая информация в одном месте, и это упростит отслеживание. ![]()
Это, конечно, хорошая новость.
Позволяет ли теперь рабочая резервная копия запустить новый экземпляр и установить его там?
В общем, я полностью обновился. Все ошибки при пересборке исчезли. Я восстановил резервную копию. Но я всё ещё не могу загружать изображения.
Итак, я создал новый сервер с нуля. Ошибок не было. Я восстановил свою резервную копию. Но при редактировании постов с графикой по-прежнему возникают те же ошибки 500. Также я не могу создавать посты с изображениями. Я даже попробовал создать пост до восстановления резервной копии на чистой установке, и графика всё равно не отображалась. Что-то должно было измениться в Discourse 2.9.0.beta4. В версии beta2 всё работало. Приходится сделать вывод, что это какая-то сетевая проблема. У меня Discourse и другие размещённые приложения находятся за NginX Proxy Manager, и все остальные приложения работают нормально. В качестве теста я убрал NginX Proxy Manager и подключил сервер напрямую, и ошибки исчезли. Таким образом, я прихожу к выводу, что beta4 что-то делает иначе в плане сети.
Кажется, вы на верном пути.
Давайте ещё раз обновим заголовок и посмотрим, поможет ли это получить больше ответов.
Боюсь, я знаю только стандартную установку, поэтому мои навыки работы с NginX Proxy равны нулю. ![]()







