Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker中运行的Jenkins看不到的文件_Docker_Jenkins_Groovy - Fatal编程技术网

Docker中运行的Jenkins看不到的文件

Docker中运行的Jenkins看不到的文件,docker,jenkins,groovy,Docker,Jenkins,Groovy,我已经创建了一个非常基本的Dockerfile,它包装了Jenkins Docker的官方图像。我正在运行映像的一个实例,遇到以下问题: 我启动映像的实例并在/tmp目录中创建一个名为tmp.txt的文件。 我转到正在运行的Jenkins实例的“脚本控制台”,在控制台中键入以下代码: f = new File('/tmp/') println f.list() 我希望看到一个文件列表,包括我新创建的/tmp/tmp.txt,但该文件不在列表中。这是阻碍我的问题的象征,我想从Jenkins文件中

我已经创建了一个非常基本的Dockerfile,它包装了Jenkins Docker的官方图像。我正在运行映像的一个实例,遇到以下问题:

我启动映像的实例并在/tmp目录中创建一个名为tmp.txt的文件。 我转到正在运行的Jenkins实例的“脚本控制台”,在控制台中键入以下代码:

f = new File('/tmp/')
println f.list()
我希望看到一个文件列表,包括我新创建的/tmp/tmp.txt,但该文件不在列表中。这是阻碍我的问题的象征,我想从Jenkins文件中调用groovy脚本的evaluate(),但该文件不是Jenkins所看到的脚本

我的直觉是,这与Docker文件系统层有关。由于Jenkins安装在基础映像中较低的docker文件系统层,因此它无法访问在其上面的运行实例层中创建的文件。这种行为看起来很奇怪,但有点可以理解。 以前有人遇到过这个问题吗?如果是这样,您是如何解决的

FROM jenkins
ENV JAVA_OPTS="-Xmx8192m"
USER root
RUN mkdir /var/log/jenkins 
RUN chown -R  jenkins:jenkins /var/log/jenkins
RUN mkdir /var/cache/jenkins
RUN chown -R jenkins:jenkins /var/cache/jenkins
RUN useradd -ms /bin/bash jenkadm
USER jenkadm
WORKDIR /home/jenkadm
COPY id_rsa /home/jenkadm/.ssh/
COPY id_rsa.pub /home/jenkadm/.ssh/
USER root
RUN mkdir -p /opt/staples/ci-tools
RUN chown jenkadm:jenkadm /opt/staples/*
USER jenkins
ENV JENKINS_OPTS="--handlerCountMax=300 --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war"

你能给我们看一下Dockerfile吗?我要用基本的jenkins图像做一个测试,看看我是否能复制它,以排除我可能在Dockerfile中引入的任何问题。也许与权限有关?我看到你在用户之间切换。