使用预先configuration的作业创buildJenkins Docker图像

我已经创build了一些本地部署pipe道作业,这些作业像删除现有容器,在本地构build服务,构buildDocker镜像,运行容器等等。这些不是CI / CD作业,只是用于部署的小pipe道本地在开发。

我现在要做的就是让所有的开发人员都能使用它,这样他们就可以简单地创build一个已经包含作业的jenkins本地实例。

我的docker文件是相当直截了当的…

FROM jenkins:latest USER root RUN apt-get update RUN apt-get install -y sudo RUN echo "jenkins ALL=NOPASSWD: ALL" >> /etc/sudoers # Docker RUN apt-get update RUN apt-get dist-upgrade -y RUN apt-get install apt-transport-https ca-certificates -y RUN sh -c "echo deb https://apt.dockerproject.org/repo debian-jessie main > /etc/apt/sources.list.d/docker.list" RUN apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D RUN apt-get update RUN apt-cache policy docker-engine RUN apt-get install docker-engine -y # .NET Core CLI dependencies RUN echo "deb [arch=amd64] http://llvm.org/apt/jessie/ llvm-toolchain-jessie-3.6 main" > /etc/apt/sources.list.d/llvm.list \ && wget -q -O - http://llvm.org/apt/llvm-snapshot.gpg.key|apt-key add - \ && apt-get update \ && apt-get install -y --no-install-recommends \ clang-3.5 \ libc6 \ libcurl3 \ libgcc1 \ libicu52 \ liblldb-3.6 \ liblttng-ust0 \ libssl1.0.0 \ libstdc++6 \ libtinfo5 \ libunwind8 \ libuuid1 \ zlib1g \ && rm -rf /var/lib/apt/lists/* #DotNetCore RUN curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?linkid=847105 RUN mkdir -p /opt/dotnet && tar zxf dotnet.tar.gz -C /opt/dotnet RUN ln -s /opt/dotnet/dotnet /usr/local/bin # Minimal Jenkins Plugins RUN /usr/local/bin/install-plugins.sh git matrix-auth workflow-aggregator docker-workflow blueocean credentials-binding # Skip initial setup ENV JAVA_OPTS -Djenkins.install.runSetupWizard=false COPY LocallyDeployIdentityConfig.xml /var/jenkins_home/jobs/identity/config.xml USER jenkins 

我想我可以做的只是复制一个作业configuration文件到/ jobs / jobname文件夹中,这个作业就会出现,不但不会出现,而且现在我也不能手动创build作业。 我现在得到一个java.io.IOException“没有这样的文件或目录” – 请注意,当我进入正在运行的容器,作业和jobname目录存在,我的configuration文件在那里。

有任何想法吗?

对于任何有兴趣的人 – 我find了一个更好的解决scheme。 我只是将作业文件夹映射到主机上的一个文件夹,这样我就可以将创build的作业放入源代码控制和编辑,然后添加它们,而无需构build新的泊坞窗图像。

sorting。

我将这些作业与configuration文件一起保存在引导文件夹中

要添加一个工作(即seedjob)我需要添加以下到Dockerfile

 # copy seedjob COPY bootstrap/seedjob.xml /usr/share/jenkins/ref/jobs/seedjob/config.xml