जब मैं एक छवि बनाने की कोशिश कर रहा हूँ तो निम्न त्रुटि हो रही है।
इस छवि में मुझे जेनकींस डाउनलोड करने, पृष्ठभूमि में जेनकींस चलाने और फिर जेनकींस-क्ली डाउनलोड करने की आवश्यकता है, फिर मुझे अपना इनपुट क्ली को देना होगा।

       FROM ubuntu:14.04

    RUN apt-get update && \
    apt-get upgrade -y && \
    apt-get install -y  software-properties-common && \
    add-apt-repository ppa:webupd8team/java -y && \
    apt-get update && \
    echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections && \
    apt-get install -f -y oracle-java9-installer && \
    apt install -y default-jre curl wget git nano; \
    apt-get clean


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

ENV JAVA_HOME /usr
ENV PATH $JAVA_HOME/bin:$PATH

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

# configure the container to run jenkins, mapping container port 8080 to that host port
ENTRYPOINT ["nohup","java", "-jar", "/opt/jenkins.war"]
RUN mkdir /jenkins/
RUN echo 2.107.1 > /jenkins/jenkins.install.UpgradeWizard.state
RUN echo 2.107.1 > /jenkins/jenkins.install.InstallUtil.lastExecVersion
EXPOSE 8080
VOLUME /jenkins

#jenkins-cli installation
RUN mkdir -p /jcli
RUN chmod 644 /jcli
RUN curl --insecure -OL http://192.168.99.100:8080/jnlpJars/jenkins-cli.jar \
   --output /jcli/jenkins-cli.jar
VOLUME /ssh
ENV JENKINS_URL "http://192.168.99.100:8080"
ENV PRIVATE_KEY "C:\Users\himn\.ssh/id_rsa"
ENTRYPOINT ["java","-jar","/jcli/jenkins-cli.jar","-noCertificateCheck","-noKeyAuth"]
CMD ["--help"]

Here is the Error

Updated error

after adding / before opt Build Succuss

प्रश्न

  1. जेनकिंस-क्ली डाउनलोड कर रहा है

  2. कौन सी निर्देशिका इसका पता लगाने में असमर्थ है

  3. क्या मुझे जेनकींस-क्ली और काम डाउनलोड करने के लिए पृष्ठभूमि में जेनकींस चलाने की ज़रूरत है और यह कैसे करें?
  4. और इसके लिए समाधान

अग्रिम धन्यवाद

मेरी Dockerfile की अंतिम कुछ पंक्तियाँ

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

# configure the container to run jenkins, mapping container port 8080 to that host port
ENTRYPOINT ["nohup","java", "-jar", "/opt/jenkins.war"]
RUN mkdir /jenkins/
RUN echo 2.107.1 > /jenkins/jenkins.install.UpgradeWizard.state
RUN echo 2.107.1 > /jenkins/jenkins.install.InstallUtil.lastExecVersion
EXPOSE 8080
VOLUME /jenkins

#jenkins-cli installation
RUN mkdir -p /jcli
RUN chmod 644 /jcli
RUN curl --insecure -OL http://192.168.99.100:8080/jnlpJars/jenkins-cli.jar \
   --output /jcli/jenkins-cli.jar
VOLUME /ssh
ENV JENKINS_URL "http://192.168.99.100:8080"
ENV PRIVATE_KEY "C:\Users\himn\.ssh/id_rsa"
ENTRYPOINT ["java","-jar","/jcli/jenkins-cli.jar","-noCertificateCheck","-noKeyAuth"]
CMD ["--help"]
0
Hithesh 16 अप्रैल 2018, 08:43

2 जवाब

सबसे बढ़िया उत्तर

आप अपने डॉकफाइल एंट्रीपॉइंट को अपडेट करने के बाद कोशिश कर सकते हैं

ENTRYPOINT ["java","-jar","/opt/tmp/jenkin-cli.jar","-noCertificateCheck","-noKeyAuth"]

और निम्नलिखित पंक्तियों को भी हटा दें:

RUN chmod 644 jenkins-cli.jar
WORKDIR /opt/tmp/jenkins-cli
COPY opt/tmp/jenkins-cli.jar ./jenkins-cli 
1
fly2matrix 16 अप्रैल 2018, 09:43

यह एक टाइपो त्रुटि की तरह दिखता है। आपके कर्ल कमांड यानी चरण 19/27 में, --output /opt/tmp/jenkin-cli.jar है, इसे /opt/tmp/jenkins-cli.jar होना चाहिए।

त्रुटि बताती है कि यह फ़ाइल /opt/tmp/jenkins-cli.jar का पता लगाने में असमर्थ है क्योंकि आपने jenkin-cli.jar नाम से फ़ाइल बनाई है न कि jenkins-cli.jar

अब दूसरी गलती यह है कि आप opt से पहले / खो रहे हैं और इसके अलावा, COPY होस्ट से कंटेनर तक काम करता है न कि कंटेनर के भीतर। उस स्थिति में, आपको कंटेनर और छवि बनाने के लिए CLI डाउनलोड करने की आवश्यकता नहीं है।

1
vivekyad4v 16 अप्रैल 2018, 09:54