在容器中运行Jenkins Job

时间:2016-11-05 03:26:18

标签: docker jenkins jenkins-pipeline

我有几个Jenkins作业和几个Jenkins从属节点(物理机器)。这些奴隶都在运行docker 1.12.1。我希望任何这些工作都能在这些奴隶上运行。由于这些工作有不同的环境要求,我认为我可以为每个不同的环境创建泊坞窗图像然后在#34;内。作业,指定作业将在哪个容器中运行。

这可能吗?即在这些作业中指定我希望这些作业运行的特定docker容器?在作业结束时,容器将被销毁,只有工件和报告将被保留。

Jenkins中有几个docker插件,但我找到了一个完全符合我想要的插件。

2 个答案:

答案 0 :(得分:8)

当然,答案是是的,这是可能的

鉴于问题的广泛性,我只能指点。

提供了一种将管道描述为代码的好方法。 docker插件也与之集成,因此您可以在容器中运行您的作业,例如

// select a slave based on the label 'docker'
node('docker') {
  stage "Run in container (e.g. the php-7)"
  docker.image('php:7').inside {
    // run your command
    sh "phpunit"
  }
}

有一些关于 的资源可以帮助您入门。

答案 1 :(得分:0)

我找到了我想要的插件。

https://wiki.jenkins-ci.org/display/JENKINS/CloudBees+Docker+Custom+Build+Environment+Plugin

这将做我想要的。它允许我在容器中运行我的工作。到目前为止,它运作良好。