Да, установите дистрибутив для архитектуры arm64 на ваш Pi.
Фонду Raspberry Pi потребовалось несколько лет, чтобы выпустить правильную архитектуру программного обеспечения, так как они всё ещё разрабатывали решения для 32-битного оборудования. Пожалуйста, замените ваш образ на текущий релиз arm64. Хорошая новость в том, что это позволит вам использовать все 8 ГБ оперативной памяти, если это ваш тип устройства.
Хм, это ядро 64-битной архитектуры (aarch64), но при этом вы получили сообщение от Docker с жалобой на armv8. Я не знаком с этой областью и не знаю всей истории того, как вы сюда попали… Обычная рекомендация — сделать безопасную резервную копию и восстановить её на свежую ОС и новую установку Discourse.
Надеюсь, что успешная установка не обязательно приведёт к проблемам при будущем обновлении.
LOL, я уже делал это много раз и готов повторить снова.
В данный момент я работаю на Raspberry Pi 400 Rev 1.0 с Bullseye 64 lite.
Я пробовал Bullseye 64, Bullseye 64 lite, 32 lite и Bookworm 64. Если я не ошибаюсь, в каждом случае возникает одна и та же ошибка, которую я публиковал.
После небольшого исследования друг предложил перепрошить систему на Bullseye 64 lite, что должно было решить проблему. Но это не помогло.
Кстати, при запуске Docker через команду sudo docker run hello-world выводится ожидаемое сообщение “Docker is working”.
Не получается запустить на Raspberry Pi 4 с 8 ГБ ОЗУ и SSD, подключенным через USB в качестве единственного диска. Система постоянно зависает на следующем (или, по крайней мере, я теряю терпение после часа ожидания…)
I, [2024-02-06T00:58:51.743994 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'
warning "@discourse/lint-configs > eslint-plugin-ember > ember-eslint-parser@0.2.5" has unmet peer dependency "@typescript-eslint/parser@^6.15.0".
warning "@discourse/lint-configs > eslint-plugin-ember > ember-eslint-parser@0.2.5" has incorrect peer dependency "typescript@^5.3.3".
warning " > @glint/environment-ember-loose@1.3.0" has unmet peer dependency "@glimmer/component@^1.1.2".
2024-02-06 01:15:58.966 UTC [64] WARNING: worker took too long to start; canceled
2024-02-06 01:16:19.640 UTC [480] WARNING: autovacuum worker started without a worker entry
2024-02-06 01:21:46.504 UTC [64] WARNING: worker took too long to start; canceled
2024-02-06 01:22:18.863 UTC [481] WARNING: autovacuum worker started without a worker entry
Было бы здорово, если бы компиляция включала индикатор прогресса.
Какой лучший способ:
узнать, что именно происходит?
безопасно остановить процесс, чтобы попробовать снова? Раньше я пробовал sudo shutdown --reboot 0, но это уничтожило базу данных PostgreSQL, и мне пришлось переустанавливать машину.
Этот шаг не является этапом компиляции, он просто скачивает JS-файлы. Их невообразимо много, и все они маленькие, поэтому, вероятно, это крайне неудачный случай для вашего нестандартного решения хранения данных?
Хорошо, я оставлю его запущенным на несколько дней. В противном случае, думаю, вместо Raspberry Pi 4 с SSD потребуется Raspberry Pi 5 с SSD.
ОБНОВЛЕНИЕ:
Спустя несколько часов и ещё много прочитанного я решил попробовать изменить контейнер LXD: перейти с пула хранения btrfs на пул хранения zfs. После этого процесс продвинулся дальше примерно за 5 минут (тогда как с btrfs он зависал на час или около того, прежде чем рабочие процессы начинали давать сбой).
Сборка всё ещё идёт, но как только она завершится, и я смогу успешно импортировать резервную копию и настроить SSL от Cloudflare, я опубликую информацию о своей миграции с Docker-контейнера Discourse, работающего на Scaleway, на Docker-контейнер Discourse, запущенный внутри контейнера LXD на Raspberry Pi 4 + SSD.