我有几个Jenkins作业和几个Jenkins从属节点(物理机器)。这些奴隶都在运行docker 1.12.1。我希望任何这些工作都能在这些奴隶上运行。由于这些工作有不同的环境要求,我认为我可以为每个不同的环境创建泊坞窗图像然后在#34;内。作业,指定作业将在哪个容器中运行。
这可能吗?即在这些作业中指定我希望这些作业运行的特定docker容器?在作业结束时,容器将被销毁,只有工件和报告将被保留。
Jenkins中有几个docker插件,但我找到了一个完全符合我想要的插件。
答案 0 :(得分:8)
当然,答案是是的,这是可能的。
鉴于问题的广泛性,我只能指点。
jenkins-pipeline提供了一种将管道描述为代码的好方法。 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"
}
}
有一些关于jenkins-pipeline docker的资源可以帮助您入门。
答案 1 :(得分:0)
我找到了我想要的插件。
https://wiki.jenkins-ci.org/display/JENKINS/CloudBees+Docker+Custom+Build+Environment+Plugin
这将做我想要的。它允许我在容器中运行我的工作。到目前为止,它运作良好。