Instalando plug-ins do Jenkins automaticamente

0

Estou escrevendo o script que faz o download do jenkins entrar em guerra, pule a configuração e instale plug-ins para ele. Eu baixei o batch-install-jenkins-plugins.sh usando algum link, e também criei o arquivo plugins.txt como mencionado. quando eu executar o script usando o docker está me dando erro que você deve especificar plugins.txt. Aqui está o meu script:

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

quando eu construo a imagem do script acima, está dando este erro:

Passo 21/23: EXECUTAR xargs /usr/local/bin/batch-install-jenkins-plugins.sh < /usr/share/jenkins/ref/plugins.txt  --- > Correndo em 72d198deef6b Você deve fornecer o arquivo de plug-in   uso: opções batch-install-jenkins-plugins.sh

Instale ou atualize os Plugins do Jenkins.

OPÇÕES:      -p --plugins contendo lista de plugins      -x --xplugins arquivo contendo lista de plugins excluídos      -d --plugindir diretório onde implantar plugins (.jpi)

Exemplos:

Execução: batch-install-jenkins-plugins.sh --plugins okplugins --excludedplugins nokplugins --plugindir / var / lib / myjenkins / plugins O comando '/ bin / sh -c xargs /usr/local/bin/batch-install-jenkins-plugins.sh < /usr/share/jenkins/ref/plugins.txt 'retornou um código diferente de zero: 123

Para verificar se eu comentei essa linha e alterei ENTRYPOINT para bash e checked, e descobri que plugins.txt está presente apenas nesse local RESULTADO DA BASH

Eu preciso pegar argumentos do plugins.txt e instalar esses plugins no jenkins, quando eu inicio no navegador.

me refiro ao link

Agradeço antecipadamente, desculpe se há um inglês errado.

    
por Hithesh Veer 24.05.2018 / 10:19

2 respostas

0

xargs funciona criando uma nova linha de comando e executando-a. A maneira como ele cria a linha de comando é iniciando a nova linha de comando que está criando com os argumentos dados como a linha de comando xargs e, em seguida, anexando o maior bloco de stdin possível (lembre-se que stdin é maior que o comando máximo o comprimento da linha tornará impossível simplesmente usar todos os stdin, ele deve ser cortado para caber dentro do comprimento máximo válido da linha de comando.)

O script, batch-install-jenkins-plugins.sh , (recebi o meu de aqui , você deve ter fornecido o link para onde você obteve o seu, porque pode haver muitas variantes desse script) não faz nada para fornecer a opção -p para que ele morra com a falta de -p pluginfile.txt .

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

Tem certeza de que deveria estar usando xargs aqui? Eu acho que isso é o que você está realmente tentando fazer:

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

Mas você provavelmente irá travar por causa da opção -z plugindir ausente, que você também deve adicionar ao seu Dockerfile .

    
por Metta Crawler 24.05.2018 / 10:44
0

Vá para o link abaixo, que eu encontrei semelhante ao que você pediu

Você pode indicar isso

    
por Akshay chittal 25.05.2018 / 08:48