首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪个文件或目录无法读取?

哪个文件或目录无法读取?
EN

Stack Overflow用户
提问于 2018-04-16 05:43:12
回答 2查看 178关注 0票数 0

在我试图建立一个图像的同时,我得到了以下错误。

在这个图片中,我需要下载jenkins,在后台运行jenkins,然后下载jenkins,然后我必须将我的输入提供给cli。

代码语言:javascript
复制
       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"]

问题

  1. 詹金斯-cli正在下载
  2. 哪个目录无法找到
  3. 我是否需要运行jenkins的后台下载jenkins和工作,以及如何做呢?
  4. 以及解决办法

提前谢谢你

我的Dockerfile最后几行

代码语言:javascript
复制
# 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"]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-16 06:43:25

您可以在将Dockfile入口点更新为

代码语言:javascript
复制
ENTRYPOINT ["java","-jar","/opt/tmp/jenkin-cli.jar","-noCertificateCheck","-noKeyAuth"]

并删除以下几行:

代码语言:javascript
复制
RUN chmod 644 jenkins-cli.jar
WORKDIR /opt/tmp/jenkins-cli
COPY opt/tmp/jenkins-cli.jar ./jenkins-cli 
票数 1
EN

Stack Overflow用户

发布于 2018-04-16 06:05:23

这看起来像是一个错误。在curl命令(即步骤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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49850292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档