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

У меня есть следующий файл Docker с 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 вручную вручную в 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 script. Это выглядит так:
COPY plugins.txt /usr/share/jenkins/plugins.txt
RUN /usr/local/bin/install-plugins.sh < /usr/share/jenkins/plugins.txt

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