Le script docker-compose.yaml se base sur une Debian stretch.
Ce n'est pas grave en soi, sauf qu'il installe des gems qui ne sont plus disponibles et donc la commande docker-compose up
ne marche pas:
Your bundle is locked to mimemagic (0.3.5) from rubygems repository
https://rubygems.org/ or installed locally, but that version can no longer be
found in that source. That means the author of mimemagic (0.3.5) has removed it.
You'll need to update your bundle to a version other than mimemagic (0.3.5) that
hasn't been removed in order to install.
J'ai essayé de rajeunir un peu le deployment/linuxfr.org/Dockerfile
pour qu'il prenne au moins Debian Buster, et enlever l'utilisation de backport au passage:
index 75712c2f..71113118 100644
--- a/deployment/linuxfr.org/Dockerfile
+++ b/deployment/linuxfr.org/Dockerfile
@@ -1,4 +1,4 @@
-FROM debian:stretch-slim
+FROM debian:bullseye-slim
LABEL maintainer="adrien@adorsaz.ch"
LABEL version="1.0"
@@ -7,15 +7,13 @@ LABEL description="Run LinuxFr.org Ruby on Rails website"
WORKDIR /linuxfr.org
# Install system dependencies
-RUN echo 'deb http://deb.debian.org/debian stretch-backports main' >> '/etc/apt/sources.list.d/linuxfr.list' \
- && apt-get update \
+RUN apt-get update && apt-get upgrade -y \
&& apt-get install -y --no-install-recommends \
- mysql-client libmysql++-dev git \
+ default-mysql-client libmysql++-dev git \
build-essential openssl libreadline-dev curl libcurl4-openssl-dev zlib1g \
zlib1g-dev libssl-dev libxml2-dev libxslt-dev autoconf libgmp-dev libyaml-dev \
ncurses-dev bison automake libtool imagemagick libc6-dev hunspell \
hunspell-fr-comprehensive ruby ruby-dev ruby-rack \
- && apt-get install -t stretch-backports -y --no-install-recommends \
nodejs npm \
&& gem install bundler \
&& apt-get clean
Mais hélas ca ne builde toujours pas:
Step 12/17 : RUN bundle config set path 'vendor/bundle' && bundle config set deployment 'true' && bundle install
---> Running in 7b137995c759
/usr/lib/ruby/vendor_ruby/rubygems.rb:281:in `find_spec_for_exe': Could not find 'bundler' (1.17.3) required by your /linuxfr.org/Gemfile.lock. (Gem::GemNotFoundException)
To update to the latest version installed on your system, run `bundle update --bundler`.
To install the missing version, run `gem install bundler:1.17.3`
from /usr/lib/ruby/vendor_ruby/rubygems.rb:300:in `activate_bin_path'
from /usr/local/bin/bundle:23:in `<main>'
# mimemagic 0.3.5 a été retiré de rubygems.org 😯
Posté par Adrien Dorsaz (site web personnel, Mastodon) . Évalué à 3 (+0/-0). Dernière modification le 12 avril 2021 à 21:28.
Hello,
Oh, je n'avais pas pensé que l'on pouvait enlever des versions sur rubygems.org…
D'un côté je comprends, les développeurs ne peuvent pas faire le support de toutes les versions, mais d'un autre côté, ce n'est pas très pratique pour pouvoir construire des environnements stables.
Même Debian Bullseye (la testing) a la version 0.3.5 de mimemagic 😅
Heureusement, je vois sur rubygems que l'on pourrait essayer de passer à la version 0.3.10, en croisant les doigts pour que semver soit bien respecté.
Si jamais, j'ai choisi de faire les images Docker avec Debian Stretch, parce que ça correspond aux serveurs de productions de LinuxFr et parce que je n'avais simplement pas réussi à monter l'environnement avec Buster.
Je n'ai pas assez d'expérience avec les environnements Ruby et Rails pour m'aventurer avec d'autres versions de Debian, mais c'est volontiers si quelqu'un y arrive :)
[^] # Re: mimemagic 0.3.5 a été retiré de rubygems.org 😯
Posté par Adrien Dorsaz (site web personnel, Mastodon) . Évalué à 2 (+0/-0).
Ok, j'ai réussi à build avec les changements de ce Pull Request: https://github.com/linuxfrorg/linuxfr.org/pull/300/files
Comme j'ai indiqué dans le Pull Request, je ne suis pas sûr de pouvoir mettre à jour la version bundle dans le Gemfile.lock.
Si ce n'est pas possible, j'aurai encore besoin de modifier le Gemfile.lock, mais en attendant, tu peux utiliser ce patch pour réussir à build l’environnement.
[^] # Rails ne dépend plus de mimemagic
Posté par Adrien Dorsaz (site web personnel, Mastodon) . Évalué à 3 (+0/-0).
Alors, j'ai fait un autre Pull Request: https://github.com/linuxfrorg/linuxfr.org/pull/301
En effet, j'ai appris que Rails a décidé de proposer des versions correctives pour ne plus dépendre de mimemagick.
Je préfère ce PR, parce qu'on suit simplement les mises à jour de Rails et parce qu'on n'a pas besoin d'ajouter le paquet
shared-mime-info
dans les dépendances du projet.[^] # Re: Rails ne dépend plus de mimemagic
Posté par Babelouest (site web personnel) . Évalué à 2 (+0/-0).
Cool, le docker-compose build bien maintenant avec le patch!
par contre c'est quoi la bonne adresse pour atteindre le site de dev? parce que http://localhost est vide, et si j'essaie http://localhost/dlfp ou http://localhost/linuxfr ou autre, ca donne rien…
[^] # Re: Rails ne dépend plus de mimemagic
Posté par Adrien Dorsaz (site web personnel, Mastodon) . Évalué à 2 (+0/-0).
Chouette, c'est cool que ça marche :-)
L'url par défaut, c'est http://dlfp.lo
Il faut penser à configurer son fichier hosts pour le définir, ainsi que img.dlfp.lo
Pour plus d'informations, tu peux regarder le fichier Docker.md.
[^] # Re: Rails ne dépend plus de mimemagic
Posté par Babelouest (site web personnel) . Évalué à 2 (+0/-0). Dernière modification le 13 avril 2021 à 15:53.
Au temps pour moi, j'avais pas vu ca.
J'avance, maintenant si je me connecte sur http://dlfp.lo j'arrive sur la page mais ca me dit:
D'après la doc, je dois lancer
docker-compose run linuxfr.org bin/rails db:migrate
, sauf que ca me pète une erreur:Merci de ton aide déjà!
[^] # Re: Rails ne dépend plus de mimemagic
Posté par Adrien Dorsaz (site web personnel, Mastodon) . Évalué à 3 (+0/-0).
Oui, rails a prévu la commande
db:setup
pour préparer la première fois la base de donnée (ça permet de la monter sans avoir besoin de passer tous les scripts).Quand tu vois que le Docker mysql est prêt avec un log du genre:
tu peux exécuter la commande suivante:
Dans l'idéal, il aurait fallu faire un entrypoint pour le Docker linuxfr.org pour qu'il configure la première fois la base avec
db:setup
.Pour bien le faire, il faudrait faire une boucle de sleep qui attend que le Docker mysql soit prêt.
[^] # Re: Rails ne dépend plus de mimemagic
Posté par Babelouest (site web personnel) . Évalué à 3 (+0/-0).
Merci beaucoup, je suis en business maintenant!
[^] # Re: mimemagic 0.3.5 a été retiré de rubygems.org 😯
Posté par Adrien Dorsaz (site web personnel, Mastodon) . Évalué à 3 (+0/-0).
Pour info, il y a quelques liens qui expliquent pourquoi cette version a été retirée: https://github.com/mimemagicrb/mimemagic/issues/148
mimemagic est sous license MIT et il incluait un fichier de
shared-mime-info
qui est sous GPL-2. La mise à jour 0.3.10, n'inclue plus ce fichier et nécessite donc l'installation du projetshared-mime-info
pour rester sous license MIT.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.