Установка jenkins плагины автоматически

Я пишу сценарий, который загружает jenkins войну, пропустите установку, затем установите плагины для нее. я загрузил batch-install-jenkins-plugins.sh с помощью некоторой ссылки и также создал файл plugins.txt, как упомянуто. когда я запускаю скрипт с помощью докера, он дает мне ошибку, что необходимо указать plugins.txt. Вот мой сценарий:

FROM ubuntu:14.04
# Install Java.
RUN \
  echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | debconf-set-selections && \
  apt-get update && \
  apt-get upgrade -y && \
  apt-get install -y  software-properties-common && \
  add-apt-repository ppa:webupd8team/java -y && \
  apt-get update && \
  apt-get install -y oracle-java8-installer && \
  rm -rf /var/lib/apt/lists/* && \
  rm -rf /var/cache/oracle-jdk8-installer

# Define commonly used JAVA_HOME variable
ENV JAVA_HOME /usr/lib/jvm/java-8-oracle

# get maven 3.2.2 and verify its checksum
RUN wget --no-verbose -O /tmp/apache-maven-3.2.2.tar.gz http://archive.apache.org/dist/maven/maven-3/3.2.2/binaries/apache-maven-3.2.2-bin.tar.gz; \
echo "87e5cc81bc4ab9b83986b3e77e6b3095 /tmp/apache-maven-3.2.2.tar.gz" | md5sum -c   
ARG BASE_URL=https://apache.osuosl.org/maven/ven-3/${MAVEN_VERSION}/binaries

# install maven
RUN tar xzf /tmp/apache-maven-3.2.2.tar.gz -C /opt/; \
  ln -s /opt/apache-maven-3.2.2 /opt/maven; \
  ln -s /opt/maven/bin/mvn /usr/local/bin; \
  rm -f /tmp/apache-maven-3.2.2.tar.gz
ENV MAVEN_HOME /opt/maven


# Install dependencies
RUN apt-get -y update  && \
    apt-get -yqq --no-install-recommends install bash git bzip2 curl unzip && \
    apt-get update

# copy jenkins war file to the container
#ADD http://mirrors.jenkins.io/war-stable/2.107.1/jenkins.war /opt/jenkins.war
COPY jenkins.war /opt/jenkins.war
ENV JENKINS_HOME /jenkins

# configure the container to run jenkins, mapping container port 8080 to that host port
RUN mkdir /jenkins/
COPY proxy.xml /jenkins/proxy.xml
COPY config_updated.xml opt/config_updated.xml

COPY settings.xml /usr/share/maven/conf/settings.xml
ENTRYPOINT ["java","-jar","/opt/jenkins.war"]
ENV JAVA_OPTS="-Djenkins.install.runSetupWizard=false"

#Install plugins
RUN cd /usr/local/bin && curl -L https://raw.githubusercontent.com/hgomez/devops-incubator/master/forge-tricks/batch-install-jenkins-plugins.sh -o batch-install-jenkins-plugins.sh
RUN chmod +x /usr/local/bin/batch-install-jenkins-plugins.sh 
COPY /plugins.txt /usr/share/jenkins/ref/plugins.txt
RUN xargs /usr/local/bin/batch-install-jenkins-plugins.sh < /usr/share/jenkins/ref/plugins.txt
RUN echo 2.0 > /usr/share/jenkins/ref/jenkins.install.UpgradeWizard.state

когда я создаю изображение вышеупомянутого сценария, это дает эту ошибку:

Шаг 21/23: ВЫПОЛНЕННЫЙ xargs/usr/local/bin/batch-install-jenkins-plugins.sh </usr/share/jenkins/ref/plugins.txt---> Работающий в 72d198deef6b необходимо обеспечить сменное использование файла: опции batch-install-jenkins-plugins.sh

Установка или обновление Плагины Jenkins.

ОПЦИИ:-p - файл плагинов, содержащий плагины, перечисляет-x - xplugins, файл, содержащий исключенные плагины, перечисляют-d - plugindir каталог, где развернуть плагины (.jpi)

Примеры:

Run:batch-install-jenkins-plugins.sh - плагины okplugins - excludedplugins nokplugins - plugindir/var/lib/myjenkins/plugins команда '/bin/sh-c xargs/usr/local/bin/batch-install-jenkins-plugins.sh </usr/share/jenkins/ref/plugins.txt' возвратили ненулевой код: 123

ДЛЯ проверки, если я комментирую, что строка и измененный ENTRYPOINT для избиения и проверенный, и нашли, plugins.txt присутствует в том месте только ВЫВОД Bash

Я должен взять аргументы от plugins.txt и установить те плагины на jenkins, когда я запускаю его в браузере.

я обратился к ссылке

Заранее спасибо, извините если там неправильный английский язык.

0
задан 24 May 2018 в 03:42

3 ответа

xargs работы путем создания новой командной строки выполнение его. Путем это создает командную строку, путем запуска новой командной строки, которую это создает с аргументами, данными как xargs командная строка и затем добавление самого большого блока stdin, что это может (помнят, что, если stdin больше, чем максимальная длина командной строки, лишит возможности просто использовать все stdin, это должно быть нарублено для установки в допустимой максимальной длине командной строки.)

Сценарий, batch-install-jenkins-plugins.sh, (Я получил мой отсюда, необходимо было предоставить ссылку туда, где Вы получили Ваш, от того, потому что могло быть много вариантов того сценария), не делает ничего для обеспечения -p опция, таким образом, это умирает с пропавшими без вести -p pluginfile.txt.

RUN xargs /usr/local/bin/batch-install-jenkins-plugins.sh < /usr/share/jenkins/ref/plugins.txt

Вы уверены, что необходимо даже использовать xargs здесь вообще? Я думаю, что это - то, что Вы действительно пытаетесь сделать:

RUN /usr/local/bin/batch-install-jenkins-plugins.sh -p /usr/share/jenkins/ref/plugins.txt

Но затем Вы, вероятно, откажете из-за пропавших без вести -z plugindir опция, которую необходимо также добавить к Вашему Dockerfile.

0
ответ дан 29 October 2019 в 06:50

Перейдите к ссылке ниже, которая я нашел подобным, что Вы спросили

Можно отослать это

0
ответ дан 29 October 2019 в 06:50

Я не абсолютно уверен что не так с Вашей сборкой, но Ваш Jenkins Dockerfile выглядит излишне сложным. Вот простой Dockerfile, который делает то, что Вы хотите:

FROM jenkins/jenkins:lts
COPY plugins.txt /usr/share/jenkins/ref/plugins.txt
RUN /usr/local/bin/install-plugins.sh < /usr/share/jenkins/ref/plugins.txt

Это устанавливает плагины, определенные в plugins.txt.

Этого должно быть достаточно для установки плагинов автоматически. Однако, если Вы хотите настроить полный экземпляр Jenkins от конфигурационного файла, проверить этот плагин Jenkins, который позволяет Jenkins быть полностью настроенным от YAML.

0
ответ дан 29 October 2019 в 06:50

Другие вопросы по тегам:

Похожие вопросы: