web-dev-qa-db-fra.com

Installer les plugins Jenkins sur Docker Jenkins

J'ai le Dockerfile suivant avec jenkins comme image de base:

FROM jenkins
USER root
ENV JENKINS_MIRROR http://mirrors.jenkins-ci.org
RUN for plugin in git-client git ws-cleanup ; do wget -O $JENKINS_HOME/plugins/${plugin}.hpi $JENKINS_MIRROR/plugins/${plugin}/latest/${plugin}.hpi ; done
EXPOSE 8080

J'essaie d'installer des plugins supplémentaires mais cela me donne une erreur disant no such file or directory enter image description here

J'ai ensuite démarré et connecté au conteneur de cette étape de génération afin de "déboguer" l'erreur: enter image description here

Cependant, je n'ai pas pu en trouver la cause car chaque répertoire semble exister. De plus, si j'exécute ensuite la boucle for manuellement dans le bash, tous les plugins sont installés correctement ...

J'ai également remarqué que l'installation des plugins fonctionne, si je les installe dans le répertoire racine comme suit:

RUN for plugin in git-client git ws-cleanup ; do wget -O ${plugin}.hpi $JENKINS_MIRROR/plugins/${plugin}/latest/${plugin}.hpi ; done

Cependant, ce n'est pas le bon endroit car ils doivent être placés dans le répertoire $ JENKINS_HOME/plugins

Pourquoi je ne peux pas installer les plugins dans $JENKINS_HOME/plugins?

21
René Winkler

Je ne peux pas lire vos captures d'écran, mais vous ne semblez pas suivre les instructions officielles. Voir https://github.com/cloudbees/jenkins-ci.org-docker sous "Installer plus d'outils". Remarque:

  • Vous devez enregistrer les plugins dans /usr/share/jenkins/ref/plugins
  • Vous pouvez utiliser un plugins.txt fichier à la place, qui contient les noms de vos plug-ins, et vous pouvez traiter avec le plugins.sh script. Cela ressemble à ceci:
COPY plugins.txt /usr/share/jenkins/plugins.txt
RUN /usr/local/bin/install-plugins.sh < /usr/share/jenkins/plugins.txt

Je pense que la raison pour laquelle votre approche ne fonctionnait pas était liée à un traitement dans le script de démarrage.

39
Adrian Mouat