Jekyll sous Docker avec des dépendances tierces

Cet article a été publié depuis plus de 6 mois, cela signifie que le contenu peut ne plus être d'actualité.

Ce blog est généré avec Jekyll et j’utilisais jusqu’à maintenant Docker avec un conteneur personnalisé, basé sur l’image officielle mais qui avait quelques dépendances supplémentaires. Néanmoins, je viens de découvrir que l’image officielle était amplement suffisante, même si vous avez besoin d’installer des gems supplémentaires.

Jekyll est un outil écrit en Ruby, c’est donc tout naturellement que j’utilise Bundler pour simplifier la gestion et l’installation des dépendances que j’utilise pour faire tourner ce blog (génération d’un sitemap, highlight, compression des assets, …).

J’utilisais donc une image personnalisée qui pré-installé toutes les dépendances nécessaires. Pourtant, je viens de découvrir qu’il était possible de spécifier à bundle où installer les dépendances. De ce fait, j’installe ces dernières au même niveau que le blog et non plus de manière globale comme précédemment.

Si vous êtes dans le même cas que moi, vous pouvez utiliser cette commande :

docker run --rm -v $PWD:/src -w /src -p 4000:4000 jekyll/jekyll sh -c "bundle install --path vendor/bundle && exec jekyll [command]"