В данный момент Discourse не работает на архитектуре arm64, поэтому в лаунчере для неё нет переключателя.
Мы активно работаем над этим, и у нас уже есть несколько членов команды, использующих его на M1, но всё ещё требуется ветка libv8, которая является транзитивной зависимостью, приходящей из miniracer.
Невероятная производительность для однопоточных задач Rails, таких как создание темы или просмотр темы. Однако в многопоточных сценариях или при операциях, затрагивающих ввод-вывод диска, она всё ещё значительно уступает любым современным решениям на архитектуре x86_64.
Если это не поможет, можно использовать переменную окружения DOCKER_DEFAULT_PLATFORM. У меня сейчас в профиле zsh прописано:
export DOCKER_DEFAULT_PLATFORM=linux/amd64
При работе с Docker я почти всегда хочу, чтобы архитектура совпадала с архитектурой продакшн-систем.
По сравнению с MacBook предыдущего поколения это значительное улучшение, хотя проблемы с производительностью файловой системы всё ещё сохраняются. Тем не менее, высокопроизводительный настольный ПК на Linux всё равно будет быстрее.
Например, я могу запустить bin/turbo_rspec на ядре примерно за 2 минуты 50 секунд (M1 MacBook Pro, с Discourse, Redis и Postgres, запущенными нативно). Участники команды на высокопроизводительных настольных ПК с Linux делают это примерно за 1 минуту.
Я не совсем понимаю… всё это общедоступно, вы можете самостоятельно следовать этим инструкциям и запустить всё.
Наши инструкции для продакшн-установок предназначены для запуска на хосте с архитектурой AMD64 под Linux. Возможно, вам удастся запустить его на других ОС или архитектурах, используя советы в этой теме, но гарантий нет.
Безусловно. У меня версия Pro, но у нас также есть люди, использующие MacBook Air и Mac Mini на M1. Судя по нашим бенчмаркам разработки, разница в производительности между ними практически отсутствует.
Мы не вносили никаких изменений в Discourse, которые находятся в какой-либо частной ветке разработки, если вы об этом спрашивали. Вы можете заставить Discourse работать на системе M1, установив ARM64-версии зависимостей, которые мы используем; это описано в руководстве, которое выше опубликовал Дэвид.