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

标签 docker jenkins

在我尝试构建图像时出现以下错误。
在此图像中,我需要下载jenkins,在后台运行jenkins,然后下载jenkins-cli,然后我必须将输入信息提供给cli。

       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

问题
  • 是jenkins-cli下载
  • 无法找到
  • 的目录
  • 我需要在后台运行jenkins才能下载jenkins-cli aand
    工作以及如何做?
  • 及其解决方案

  • 预先谢谢你

    我的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"]
    

    最佳答案

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

    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 
    

    关于docker - 哪个文件或目录无法读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49850292/

    相关文章:

    linux - Docker - EACCES : permission denied, mkdir '/app/node_modules/.cache'

    docker - 我可以为docker swarm容器分配核心吗?

    python - 在 Jenkins 管理插件选项卡中找不到违规插件

    ruby - Jenkins 工作缓慢。 I/O 相关吗?

    shell - Mesos Marathon Docker容器-CommandInfo

    python - 为什么 pip(使用 --find-links)仍然从 Internet 收集一些依赖项,尽管在多阶段 docker 构建中存在一个轮子?

    java - 改变 docker 容器中的 java 安全性

    java - 为 Maven 将分拆的子 JVM 进程设置 permgen 大小

    bash - 从 jenkins groovy 脚本中的 bash 脚本捕获退出代码

    git - (不是实际的)Jenkins 工作区缺少点文件