Je rencontre cette erreur lorsque j’essaie d’exécuter d/boot_dev --init :
Errno::EACCES: Permission denied @ dir_s_mkdir - tmp
/src/config/boot.rb:23:in `<top (required)>'
/src/config/application.rb:16:in `require'
/src/config/application.rb:16:in `<top (required)>'
/src/Rakefile:7:in `require'
/src/Rakefile:7:in `<top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
(Voir la trace complète en exécutant la tâche avec --trace)
Avez-vous des idées sur la façon de le corriger ? J’ai cherché partout mais n’ai trouvé aucune solution.
Édition : corrigé en exécutant chmod -R 777 ~/discourse, mais maintenant je rencontre cette erreur :
gifsicle worker : gifsicle introuvable ; veuillez fournir le binaire approprié ou désactiver ce worker (argument --no-gifsicle ou :gifsicle => false via les options)
Ce n’est pas un problème, nous avons supprimé notre utilisation récemment, l’avertissement n’est pas préoccupant. Travaillez-vous sur un ancien code de Discourse ?
Comment utiliser les plugins dans ce type de configuration ?
J’essaie de suivre Install plugins on a self-hosted site, mais il y est fait référence au fichier /var/discourse/containers/app.yml, qui n’existe pas dans mon répertoire discourse.
J’ai réussi à configurer un environnement de développement Discourse et à tester mon correctif, mais comment puis-je intégrer ce correctif dans mon instance de production ? J’ai essayé de construire base, puis d’exécuter ./launcher rebuild app --run-image discourse/base:build, mais cela ne semble pas aboutir à une instance Discourse en cours d’exécution.
Habituellement, je rencontre une erreur indiquant que le groupe syslog est manquant, mais je l’ai commentée, et je n’ai toujours pas obtenu de site fonctionnel. Rien de notable non plus dans les journaux Docker.
Nous ne documentons pas vraiment ce genre de choses, mais vous pouvez générer un fichier « diff », puis appliquer ce diff dans un hook après avoir cloné le dépôt. app.yml prend en charge les hooks.
Une solution rapide et simple pour les déploiements auto-hébergés en conteneur unique consiste simplement à modifier le code sur place et à exécuter sv restart unicorn.
Je ne suis pas sûr que ce soit le meilleur endroit pour poser cette question, mais je n’arrive pas à terminer l’installation de Discourse avec Docker sur un ordinateur Apple M1.
Après avoir exécuté d/boot_dev --init, toutes les dépendances sont installées sans problème apparent, mais une fois arrivé à l’étape Migrating database, le processus reste bloqué en consommant 100 % d’un de mes cœurs, sans aucune progression.
J’ai essayé de me connecter au conteneur Docker et la tâche bundle migrate tourne à 100 %, mais aucune activité apparente n’est visible sur le processus PostgreSQL.
Si quelqu’un arrive à exécuter Discourse avec Docker sur un Mac M1, merci de me le faire savoir. En attendant, je vais essayer de suivre l’autre guide ! Merci !
J’ai essayé brièvement aujourd’hui et je suis bloqué à la même étape que vous, mais avec une erreur :
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)
Oui, s’il vous plaît, faites-le. Plusieurs membres de l’équipe utilisent Discourse sur M1 (moi y compris) tous les jours, donc cela fonctionne très bien !
Faites-nous savoir si vous rencontrez des problèmes.
Bonjour, je pense que nous devrions ajouter une description à propos d’Ember-CLI ici, ainsi qu’un raccourci pour la commande ci-dessous sans avoir à entrer dans le conteneur Docker.
Et je n’arrive pas à faire fonctionner les commandes ci-dessus à l’intérieur du conteneur ; il semble que le port 4200 ne soit pas exposé par le conteneur.
Exposition manuelle du port 4200 en modifiant d/boot_dev :
J’ai essayé cela aujourd’hui et j’ai également rencontré des problèmes. L’erreur que j’ai constatée était due au fait que l’émulation d’architecture de Docker ne prend pas en charge inotify (que nous utilisons beaucoup dans le développement de Discourse). Pour l’instant, j’ai ajouté un avertissement dans d/boot_dev lorsqu’une architecture autre que x86_64 est détectée :
❯ d/boot_dev
AVERTISSEMENT : L'architecture Docker n'est pas x86_64.
Le développement de Discourse risque de ne pas fonctionner avec l'émulation d'architecture de Docker.
Veuillez essayer une installation de développement native.
J’ai maintenant ajouté un helper d/ember-cli et le port 4200 est redirigé par défaut. Les informations en haut de ce sujet ont également été mises à jour. Une fois que vous avez mis à jour, exécutez d/rails s dans un terminal et d/ember-cli dans un autre. J’ai également défini NO_EMBER_CLI comme l’une des variables transmises à Docker, afin qu’elle soit disponible si nécessaire.
@david, c’est probablement sans conséquence, mais juste pour info : le script boot_dev affiche une fausse erreur lors de la vérification x86_64 lorsque je l’ai lancé par erreur sans Docker sur… (mais la partie « Le démon Docker est-il en cours d’exécution ? » est correcte)…
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?
Merci pour cette image et les instructions super claires !
J’ai obtenu psql: error: FATAL: Peer authentication failed for user "postgres" en exécutant d/boot_dev --init.
Bien que le fichier pg_hba.conf dans data/postgres/ ait toutes les méthodes d’authentification définies sur « trust », il y en avait un autre dans /etc/postgresql/13/main/ qui utilisait les valeurs par défaut (« peer » / « md5 »).
J’ai édité /etc/postgresql/13/main/pg_hba.conf, changé toutes les méthodes en trust, lancé d/shell et exécuté sv restart postgres pour prendre en compte les modifications — et j’ai pu continuer en exécutant manuellement d/bundle install ; d/rake db:migrate RAILS_ENV=development ; d/rake admin:create.
Je laisse ce message au cas où cela serait utile à quelqu’un d’autre !