如何在后台运行jenkins.war并使用cli

时间:2018-07-25 09:43:11

标签: docker jenkins war

我对Docker非常陌生。我需要执行以下任务:

  • 在Docker中运行Jenkins实例
  • 配置它以在启动时自动安装JobDSL插件

我写了DockerFile

FROM java:8
EXPOSE 8080
ADD jenkins.war jenkins.war
ENTRYPOINT ["java","-jar","jenkins.war"]

然后我运行docker run ... 但是有一个问题,我不能使用控制台,但是必须使用控制台来安装插件。最后,我尝试使用&解决此问题。它没有帮助。附注:我无法使用詹金斯图片

1 个答案:

答案 0 :(得分:0)

Jenkins使用JENKINS_HOME目录,该目录存储配置,作业和插件。

一种实现所需目标的方法可能是在运行jenkins之前在此目录中设置插件。

  • 如果您使用官方的詹金斯映像,则也许可以使用数据量来存储该数据,然后运行docker来使用该数据量:docker run -V /your/data/volume:/var/jenkins_home jenkins/jenkins
  • 如果您不需要数据量,并且想要带有插件的图像,则可以向您添加dockerfile,例如:

RUN mkdir -p ~/.jenkins/plugins && \ cd ~/.jenkins/plugins && \ wget http://your/plugins/plugins.jpi

  • 最后,您可以通过创建一个shell脚本来混合一点,该脚本将检查plugins目录是否存在,如果不获取插件文件,则启动jenkins。该shell脚本将成为您的图像入口点。

注意:您需要下载的插件文件为.jpi文件!不是.hpi

作为参考,这里有一个示例:

FROM java:8
RUN  wget https://updates.jenkins-ci.org/download/war/2.121.2/jenkins.war && \
    mkdir -p ~/.jenkins/plugins && \
    cd ~/.jenkins/plugins && \
    wget https://repo.jenkins-ci.org/releases/org/jenkins-ci/plugins/job-dsl/1.33/job-dsl-1.33.jpi
ENTRYPOINT ["java","-jar","jenkins.war"]