将作业目录从存储库中拖放到Dockerfile中的Jenkins中
我正在尝试创build一个Jenkins图像,该图像从包含一些预configuration作业的私有存储库中提取目录,并将这些作业显示在仪表板上。 我做了一个Dockerfile,将build立一个jenkins的图像,可以从我的私人回购拉到jenkins容器的目录。
但是,这些拉出的作业不会出现在/ var / jenkins_home / jobs中 ,因此Jenkins不会在仪表板上显示作业。
这是Dockerfile的一般内容:
FROM jenkins:latest ENV JAVA_OPTS -Djenkins.install.runSetupWizard=false USER root RUN mkdir -p /var/jenkins_home/jobs/ WORKDIR /var/jenkins_home/jobs/ RUN "pull jobs directory from here" \ ls -lah; WORKDIR / USER jenkins
当我拉出作业目录时,我只能将其拉入/ var ,而不是在/ var / jenkins_home /或/ var / jenkins_home / jobs目录中。
我怀疑这个问题与Jenkins图像中创build目录的方式有关,其中/ var / jenkins_home目录在构build图像时被覆盖。
我有一个相关的post在这里检查,但我不想与图像文件夹绑定任何本地文件夹。 但是这个想法是密切相关的。
谢谢你的时间。
基础的Dockerfile通过这个指令将卷设置为/ var / jenkins_home:
VOLUME /var/jenkins_home
这会使该目录的行为与图像中的普通目录不同,导致您无法在Dockerfile中写入此目录,因为您试图在执行预configuration的作业时执行此操作。
这个问题在一个名为“Docker In-depth:Volumes”的文章中有更详细的描述,但是TLDR; 这是:
FROM debian:jessie VOLUME /foo/bar RUN touch /foo/bar/baz # /foo/bar/baz doesn't exist