Ceci a été extrait du fil de discussion sur la configuration de l’environnement de développement WSL sous Windows 11.
Mes problèmes concernent une configuration de développement (non-docker) installée sur Ubuntu 22.04.3
…Merci pour cela, j’ai dû effectuer quelques étapes manuelles supplémentaires car le programme d’installation modifié ne semblait pas installer les dernières versions de npm ou de ruby.
J’utilise également ubuntu-22.04
Installer la dernière version de npm en utilisant (option 2) : https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-22-04
Installer pnpm : npm install -g pnpm
Installer la dernière version de ruby (méthode 3) : https://ubuntuhandbook.org/index.php/2024/01/install-ruby-ubuntu-24-04/
Ajouter ceci à bash.rc :
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
Installer imagemagick manuellement, la dernière version (assurez-vous d’aller à la section “Install latest version of ImageMagick from the source code (for advanced and desperate users)” : https://itsfoss.com/install-imagemagick-ubuntu
Ce n’est qu’après tout cela que j’ai pu me connecter à l’instance….
Après avoir passé toute la journée à configurer l’instance de développement, j’étais plutôt satisfait… tout semble fonctionner correctement, sauf le téléchargement des avatars. Plus précisément, en tant qu’utilisateur, je peux télécharger un avatar et il s’affiche correctement dans la boîte de téléchargement d’avatar, mais lorsque je clique sur enregistrer, il affiche simplement l’avatar de remplacement… aucune erreur dans les journaux…
c’est assez important pour moi car j’ai configuré l’instance de développement pour tester une migration et l’un de ces tests est de vérifier que les avatars fonctionnent
… donc je veux m’assurer qu’ils fonctionnent avant de procéder à une importation de test.
Les images téléchargées dans les sujets apparaissent correctement, aucun problème.
Quelqu’un a-t-il des idées ? Toute aide est grandement appréciée.
Les URL des images peuvent être un peu délicates en local.
Assurez-vous de démarrer votre serveur local avec FORCE_HOSTNAME=localhost:4200 bin/ember-cli -u
Il est préférable d’utiliser une instance de test dans le cloud pour imiter votre destination finale… en fait, je vous recommanderais de tester les migrations dans le cloud en fin de compte.
1 « J'aime »
J’ai essayé, sans succès.
Je suis tellement fatigué après avoir passé toute la journée à mettre cet environnement de développement local là où il est, que je ne peux me résoudre à penser que tout cela était inutile maintenant
je pensais y être arrivé !
Mon raisonnement pour un environnement de développement local était :
exécuter le script d’importation localement, sauvegarder Discord, le mettre sur l’instance de production cloud appropriée lorsque tout semble bon…
vous pouvez vérifier les URL des avatars dans les outils de développement du navigateur et vous pourriez constater qu’elles ne sont pas correctes
les installations locales sont très utiles pour le développement et les tests… mais pas parfaites pour la manipulation d’images
1 « J'aime »
Ce qui se passe probablement, c’est que WSL n’expose pas 127.0.0.1 à Windows, donc un navigateur Windows ne le détecte pas.
Essayez plutôt de lancer depuis Chrome dans WSL2 et de l’utiliser ?
Mon hypothèse est que les avatars sont affichés avec une adresse 127.0.0.1…
Ahh désolé, j’utilise Ubuntu, sur une VM Ubuntu. Je ne voulais pas détourner ce fil de discussion sur Windows 11.
1 « J'aime »
Voici le comportement exact.
Les téléchargements d’images dans les publications fonctionnent bien.
Changer votre avatar d’utilisateur semble fonctionner lorsque vous téléchargez l’image pour la première fois et que vous êtes toujours dans la boîte de dialogue de sélection d’image :
mais lorsque vous cliquez sur « Enregistrer les modifications », l’image téléchargée ne s’affiche pas et montre celle par défaut :
L’image a été téléchargée et peut être visualisée en allant à la source :
et si vous modifiez l’URL dans les outils de développement, elle s’affiche correctement sur la page des préférences :
Donc… la différence réside dans l’URL - l’avatar personnalisé téléchargé a une URL de type « http://127.0.0.1:4200/uploads/default/original….. » mais la page essaie d’afficher
« /user_avatar/127.0.0.1/user1/…… ».
….qu’est-ce qui m’échappe ici ?
note : dans les sujets/publications, l’image s’affiche correctement avec l’URL : http://localhost:4200/uploads/default/original/……….etc
Toute aide est appréciée !
D’accord, je pense que je suis en train de comprendre, deux problèmes, je vous tiendrai au courant quand ça fonctionnera
Ok…
Premier problème : le chemin de l’avatar était l’adresse ip 127.0.0.1 alors que toutes les autres URL étaient localhost - cela aurait-il pu faire une différence ? Je l’ai changé de toute façon, en allant dans rails c (car il ne semblait pas prendre les paramètres de la ligne de commande pour démarrer discourse (FORCE_HOST=localhost etc.), ils étaient vides dans rails).
rails c
SiteSetting.force_hostname = "localhost"
SiteSetting.port = 4200
exit
Ensuite, les chemins d’avatar étaient localhost et non l’adresse ip après avoir redémarré le site. Les avatars ne fonctionnaient toujours pas cependant.
Une enquête plus approfondie des journaux dès que j’ai effectué une importation d’avatar :
tail -n 200 log/development.log
a révélé :
convert: no decode delegate for this image format jpeg:/home/bob/discourse/public/uploads/default/original/1X/92bb0d46e6a4b8a1333505b9d2da59a5ed1721ec.jpeg[0]' @ error/constitute.c/ReadImage/752.\nconvert: no images defined jpeg:/tmp/discourse-thumbnail20260202-4096-qjyo93.jpeg' @ error/deprecate.c/ConvertImageCommand/3368.\n"
et après quelques recherches, j’ai découvert que c’était parce que j’avais installé imagemagick mais pas les délégués jpeg EN PREMIER. J’ai désinstallé Imagemagick, installé les délégués jpeg (et autres) :
sudo apt install -y libpng-dev libtiff-dev libwebp-dev libheif-dev liblcms2-dev zlib1g-dev libjpeg-turbo8 libjpeg-turbo8-dev
puis réinstallé Imagemagick à partir des sources :
./configure \
--prefix=/usr/local \
--with-modules \
--disable-static \
--with-quantum-depth=16 \
--with-jpeg=yes \
--with-png=yes \
--with-tiff=yes \
--with-webp=yes \
--with-heic=yes \
--with-lcms=yes
make -j"$(nproc)"
sudo make install
sudo ldconfig
J’ai redémarré le serveur discourse et les avatars ont fonctionné instantanément 
Je suis agacé contre moi-même d’être resté fixé sur les références d’URL ip/localhost au lieu de vérifier les bases… mais voilà, j’ai beaucoup appris au cours des deux derniers jours et ça fonctionne maintenant 