Установка плагинов Jenkins в Docker Jenkins

у меня есть следующий Dockerfile с jenkins в качестве базового изображения:

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

Я пытаюсь установить некоторые дополнительные плагины, но это дает мне ошибку, говоря no such file or directory enter image description here

затем я начал и подключился к контейнеру этого шага сборки, чтобы "отладить" ошибку: enter image description here

однако я не мог узнать причину, потому что каждый каталог, похоже, существует. Кроме того, если я затем запускаю for-loop вручную в bash, все плагины установлен правильно...

Я далее заметил, что установка плагинов работает, если я устанавливаю их в корневой каталог следующим образом:

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

однако это неправильное место, так как они должны быть размещены в каталоге $JENKINS_HOME/plugins

почему я не могу установить плагины в $JENKINS_HOME/plugins?

1 ответов


Я не могу прочитать ваши скриншоты, но вы, похоже, не следуете официальным инструкциям. См.https://github.com/cloudbees/jenkins-ci.org-docker в разделе "Установка дополнительных инструментов". Примечание:

  • вы должны сохранить Плагины /usr/share/jenkins/ref/plugins
  • вы могли бы использовать plugins.txt вместо этого файл, который содержит имена ваших плагинов, и вы можете обрабатывать с помощью предоставленного plugins.sh сценарий. Это выглядит так:
COPY plugins.txt /usr/share/jenkins/plugins.txt
RUN /usr/local/bin/install-plugins.sh < /usr/share/jenkins/plugins.txt

Я думаю, что причина, по которой ваш подход не работал, заключалась в некоторой обработке в сценарии запуска.