【问题标题】:How to run jenkins.war in background and use cli如何在后台运行 jenkins.war 并使用 cli
【发布时间】:2019-01-02 02:04:57
【问题描述】:

我对 Docker 还是很陌生。我需要完成以下任务:

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

我写了 DockerFile

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

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

【问题讨论】:

  • 您也许可以找到docker run 选项来在后台启动容器,或者找到另一个 Docker 命令来在正在运行的容器中获取 shell。还有一个manual path to install Jenkins plugins,您可以将其放入 Dockerfile 中。
  • 我知道如何在后台启动容器。我需要在 docker 的后台运行 jenkins.war。

标签: docker jenkins war


【解决方案1】:

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

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

  • 如果你使用官方的 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脚本来混合一点,如果不获取插件文件,然后启动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"]

【讨论】:

  • 您需要下载 JPI 文件,而不是 HPI。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-30
  • 2010-12-10
  • 1970-01-01
相关资源
最近更新 更多