Есть какие-то идеи, как это исправить? Я искал решение повсюду, но ничего не нашел.
Редактирование: исправил, выполнив chmod -R 777 ~/discourse, но теперь получаю эту ошибку:
gifsicle worker: gifsicle не найден; пожалуйста, предоставьте правильный бинарный файл или отключите этот воркер (аргумент --no-gifsicle или :gifsicle => false через параметры)
Как использовать плагины в такой настройке?
Я пытаюсь следовать инструкции Install plugins on a self-hosted site, но в ней упоминается файл /var/discourse/containers/app.yml, которого нет в моей директории discourse.
Мне удалось настроить окружение для разработки Discourse и протестировать свой патч, но как мне внедрить его в продакшн-инстанс? Я пробовал собрать base, а затем выполнить ./launcher rebuild app --run-image discourse/base:build, но это, похоже, не приводит к запуску работающего экземпляра Discourse.
Обычно возникает ошибка о отсутствующей группе syslog, но я закомментировал её, и всё равно не получил работающий сайт. В логах Docker тоже ничего примечательного.
Мы не документируем подобные вещи, но вы можете сгенерировать файл «diff», а затем применить его с помощью git в хуке после клонирования репозитория. app.yml поддерживает хуки.
Быстрое и простое решение для самохостинга в одном контейнере — просто отредактировать код на месте и выполнить sv restart unicorn.
Не уверен, что это лучшее место для вопроса об этой проблеме, но я не могу завершить установку Discourse с помощью Docker на компьютере Apple M1.
После запуска команды d/boot_dev --init все зависимости устанавливаются без видимых проблем, но как только процесс доходит до шага Migrating database, он зависает, потребляя 100% одного из ядер процессора, и, похоже, не продвигается дальше.
Я пытался войти в контейнер Docker: задача bundle migrate выполняется с загрузкой 100%, но активность процесса PostgreSQL отсутствует.
Я попробовал сегодня, но застрял на том же этапе, что и вы, с ошибкой:
Invalid gemspec in [/usr/local/lib/ruby/gems/2.7.0/specifications/default/zlib-1.1.0.gemspec]: Malformed version number string specification_version
bundler: failed to load command: rake (/usr/local/bin/rake)
Да, пожалуйста, сделайте это. У нас несколько членов команды ежедневно используют Discourse на M1 (включая меня), так что всё работает отлично!
Сегодня я тоже попробовал это сделать и столкнулся с проблемами. Ошибка возникла из-за того, что эмуляция архитектуры в Docker не поддерживает inotify (который мы активно используем при разработке Discourse). На данный момент я добавил предупреждение в d/boot_dev, которое появляется при обнаружении архитектуры, отличной от x86_64:
❯ d/boot_dev
WARNING: Docker architecture is not x86_64.
Discourse development is unlikely to work using Docker's architecture emulation.
Please try a native development installation.
Теперь я добавил вспомогательную утилиту d/ember-cli и по умолчанию пробросил порт 4200. Информация в верхней части этой темы также обновлена. После обновления запустите d/rails s в одном терминале и d/ember-cli в другом. Я также добавил переменную NO_EMBER_CLI в список переменных, передаваемых в Docker, так что она доступна при необходимости.
@david, вероятно, это не имеет значения, но просто к сведению: скрипт boot_dev выводит ложное сообщение об ошибке при проверке x86_64, когда я случайно запустил его без Docker на…(хотя часть «Запущен ли демон Docker?» верна)…
WARNING: Docker architecture is not x86_64.
Discourse development is unlikely to work using Docker's architecture emulation.
Please try a native development installation.
...(snip)...
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Спасибо за это изображение и супер-понятные инструкции!
При запуске d/boot_dev --init я получил ошибку: psql: error: FATAL: Peer authentication failed for user "postgres".
Хотя в файле pg_hba.conf в папке data/postgres/ все методы аутентификации были установлены в значение “trust”, в /etc/postgresql/13/main/ находился другой файл с настройками по умолчанию (“peer” / “md5”).
Я отредактировал файл /etc/postgresql/13/main/pg_hba.conf, изменил все методы на trust, выполнил d/shell и запустил sv restart postgres, чтобы применить изменения. После этого смог продолжить работу, выполнив вручную команды: d/bundle install, d/rake db:migrate RAILS_ENV=development и d/rake admin:create.
Оставляю это здесь на случай, если кому-то ещё это пригодится!