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.
# Apparemment, mon problème venait du $LOAD_PATH
Posté par Adrien Dorsaz (site web personnel, Mastodon) . Évalué à 3 (+0/-0). Dernière modification le 14 septembre 2020 à 10:08.
J'ai trouvé une solution pour build, il faudrait apparemment corriger le LOAD_PATH.
J'ai vu ça dans ce tutoriel.
Du coup, comme j'ai réussi à build et à faire mon test, j'ai ouvert un Pull Request ici.
[^] # Re: Apparemment, mon problème venait du $LOAD_PATH
Posté par Bruno Michel (site web personnel) . Évalué à 4 (+0/-0).
J'ai intégré la Pull Request et publié une version 0.1.3 de la gem avec les changements.
[^] # Re: Apparemment, mon problème venait du $LOAD_PATH
Posté par Adrien Dorsaz (site web personnel, Mastodon) . Évalué à 3 (+0/-0).
Merci beaucoup !
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.