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
Docker 如何在后台运行jenkins.war并使用cli_Docker_Jenkins_War - Fatal编程技术网

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

Docker 如何在后台运行jenkins.war并使用cli,docker,jenkins,war,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… 但是有一个问题我不能使用控制台,但我必须使用控制台来安装插件。最后,我试图用&解决这个问题。这没有帮助。注:我不

我对Docker还是个新手。我需要完成以下任务:

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

FROM java:8
EXPOSE 8080
ADD jenkins.war jenkins.war
ENTRYPOINT ["java","-jar","jenkins.war"]
然后我运行
docker run…

但是有一个问题我不能使用控制台,但我必须使用控制台来安装插件。最后,我试图用&解决这个问题。这没有帮助。注:我不能使用jenkins映像

jenkins使用jenkins_主目录,它存储配置、作业和插件

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

  • 如果您使用正式的jenkins映像,那么您可能可以使用一个数据卷来存储该映像,并运行docker来使用此数据卷:
    docker run-V/your/data/volume:/var/jenkins\u home jenkins/jenkins
  • 如果您不想要数据卷,并且想要带有插件的映像,则可以向dockerfile中添加如下内容:

运行mkdir-p~/.jenkins/plugins&&\
cd~/.jenkins/插件和\
wgethttp://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"]

您可以找到一个
docker run
选项在后台启动容器,或者另一个docker命令在运行的容器中获取shell。还有一个可以放在Dockerfile中的文件。我知道如何在后台启动容器。我需要在docker的后台运行jenkins.war。您需要下载JPI文件,而不是HPI。