Suivi — Tribune board-linuxfr: réparer le build et permettre de configurer le host et port du serveur redis

#1949 Posté par  (site Web personnel) . État de l’entrée : corrigée. Licence CC By‑SA.
Étiquettes : aucune
0
14
sept.
2020

Hello!

Ce weekend, j'ai essayé de créer un environnement de dev pour LinuxFr avec Docker-Compose.

J'ai bien progressé, mais je n'arrive pas à exécuter l'outil board-linuxfr dans son propre container.

En fait, le soucis est assez simple: dans le PluginRedis, le code utilise Redis.new et il faudrait le mettre à jour pour permettre de choisir l'host et le port.

Je pensais faire simplement:

diff --git a/lib/board-linuxfr/redis_plugin.rb b/lib/board-linuxfr/redis_plugin.rb
index 15f4db2..5ba3625 100644
--- a/lib/board-linuxfr/redis_plugin.rb
+++ b/lib/board-linuxfr/redis_plugin.rb
@@ -12,7 +12,7 @@ class BoardLinuxfr
       @logger = logger
       @chans  = status[:channels] = Hash.new { |h,k| h[k] = EM::Channel.new }
       @cache  = status[:cache]    = Cache.new
-      @redis  = Redis.new
+      @redis  = Redis.new(host: env['REDIS_HOST'] || "localhost", port: env['REDIS_PORT'] || 6379)
     end

     def run

Ça me permettrait de choisir le serveur redis avec des variables d'environnement.

Le mieux aurait été une option à la ligne de commande, mais je n'ai pas compris comment en ajouter 😅

Enfin, je voulais essayer mon patch, mais je suis incapable de faire un build de la gem (j'ai essayé avec Debian Bullseye et Stretch), j'ai l'erreur suivante:

Invalid gemspec in [board-linuxfr.gemspec]: cannot load such file -- board-linuxfr/monkeypatch
ERROR:  Error loading gemspec. Aborting.

J'ai trouvé que je pouvais appliquer ce petit patch pour l'appel du "monkeypatch":

diff --git a/lib/board-linuxfr.rb b/lib/board-linuxfr.rb
index 12b0143..1a89275 100644
--- a/lib/board-linuxfr.rb
+++ b/lib/board-linuxfr.rb
@@ -1,5 +1,5 @@
 require "goliath"
-require "board-linuxfr/monkeypatch"
+require_relative "board-linuxfr/monkeypatch"
 require "yajl"

Mais, après, j'ai le même genre d'erreur avec les autres fichiers qui sont chargés avec autoload:

Invalid gemspec in [board-linuxfr.gemspec]: cannot load such file -- board-linuxfr/redis_plugin
ERROR:  Error loading gemspec. Aborting.

Je n'ai pas trouvé de solution simple pour corriger le chargement de l'autoload.

Mais peut être qu'il n'y a rien à corriger, puisque je ne connais pas trop le monde de Ruby, alors j'imagine qu'il me manque une étape pour construire la gem.

Est-ce que ça serait possible de documenter comment faire le build de la gem dans le README ? Et si j'applique déjà la bonne procédure, vous pourriez me donner un coup de main ?

Si jamais, j'ai fait une petite branche pour montrer ce que j'ai fait et il y a un Dockerfile qui reproduit la procédure de build que j'essaie de faire.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.