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
J'ai ensuite démarré et connecté au conteneur de cette étape de génération afin de "déboguer" l'erreur:
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
?
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:
/usr/share/jenkins/ref/plugins
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.