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
Dockerfile未将目录创建为jenkins映像的根目录_Docker_Jenkins_Groovy_Dockerfile_Snakeyaml - Fatal编程技术网

Dockerfile未将目录创建为jenkins映像的根目录

Dockerfile未将目录创建为jenkins映像的根目录,docker,jenkins,groovy,dockerfile,snakeyaml,Docker,Jenkins,Groovy,Dockerfile,Snakeyaml,我正在尝试为jenkins构建一个docker映像,它可以自动配置服务器。我想在配置文件中使用yaml。为此,我需要为groovy grapes提供snakeyaml。这是我的docker文件 FROM jenkins/jenkins:2.107.3 ENV JAVA_OPTS="-Djenkins.install.runSetupWizard=false" USER root RUN mkdir -p /var/jenkins_home/files RUN mkdir -p /var/j

我正在尝试为jenkins构建一个docker映像,它可以自动配置服务器。我想在配置文件中使用yaml。为此,我需要为groovy grapes提供snakeyaml。这是我的docker文件

FROM jenkins/jenkins:2.107.3

ENV JAVA_OPTS="-Djenkins.install.runSetupWizard=false"

USER root

RUN mkdir -p /var/jenkins_home/files
RUN mkdir -p /var/jenkins_home/.groovy/grapes/org.yaml/snakeyaml/jars
RUN chown -R  jenkins:jenkins /var/jenkins_home/files
RUN chown -R  jenkins:jenkins /var/jenkins_home/.groovy/grapes/org.yaml/snakeyaml/jars

USER jenkins

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

COPY 03security.groovy /usr/share/jenkins/ref/init.groovy.d/03security.groovy

COPY ivy-1.21.xml /var/jenkins_home/.groovy/grapes/org.yaml/snakeyaml/ivy-1.21.xml
COPY snakeyaml-1.21.jar  /var/jenkins_home/.groovy/grapes/org.yaml/snakeyaml/jars/snakeyaml-1.21.jar
COPY mainConfig.yml /var/jenkins_home/files/mainConfig.yml
COPY 03mainConfig.groovy /usr/share/jenkins/ref/init.groovy.d/03mainConfig.groovy
来自詹金斯/詹金斯:2.107.3 ENV JAVA_OPTS=“-Djenkins.install.runSetupWizard=false” 用户根 运行mkdir-p/var/jenkins_home/files 运行mkdir-p/var/jenkins_home/.groovy/grapes/org.yaml/snakeyaml/jars 运行chown-R jenkins:jenkins/var/jenkins_home/files 运行chown-R jenkins:jenkins/var/jenkins_home/.groovy/grapes/org.yaml/snakeyaml/jars 用户詹金斯 复制plugins.txt/usr/share/jenkins/ref/plugins.txt 运行/usr/local/bin/install-plugins.sh 我不知道为什么我会遇到这个问题,但当我运行构建时,我会遇到以下错误:

chown:无法访问“/var/jenkins_home/files”:没有这样的文件或目录

我在其他图像中运行过类似的命令,但没有这个问题,但它不允许我创建或访问该文件,当我排除它并尝试仅使用.groovy/grapes路径时,我会遇到相同的错误


在此方面的任何帮助都将不胜感激。另外,如果您知道一个将snakeyaml(或另一个库)加载到jenkins docker映像中的有效解决方案,那么我也希望看到它

我想这是因为/var/jenkins\u home/是音量。如果运行命令docker history jenkins/jenkins,您将看到它

<missing>           2 months ago        /bin/sh -c #(nop)  VOLUME [/var/jenkins_home]   0B

这意味着容器启动后,所有xml文件都将复制到/var/jenkins_home。

我想这是因为/var/jenkins_home/是卷。如果运行命令docker history jenkins/jenkins,您将看到它

<missing>           2 months ago        /bin/sh -c #(nop)  VOLUME [/var/jenkins_home]   0B
这意味着容器启动后,所有xml文件都将复制到/var/jenkins_home中